
Neste Screencast você vai aprender como enviar SMS diretamente do seu APP Ruby On Rails de forma bem fácil através de um passo a passo simples.
Com o envio de SMS’s você pode enviar notificações importantes para seus usuários mesmo quando eles estão sem internet e também pode fazer validações mais seguras enviando um SMS’s de confirmação na hora do registro de usuário ou em operações que necessitem de mais segurança.
Então vem com a gente aprender essa técnica 😀💪
Criando sua conta no Twilio
Antes de iniciar o tutorial é importante que você crie uma conta no Twilio clicando aqui, ele é a aplicação que enviará o SMS quando solicitarmos.
Para criar a conta basta entrar no site, preencher os dados de registro, validar seu email, validar seu mobile e quando ele perguntar para que você vai usar a sua conta você seleciona a opção Hackathon (ou teste), ele deve liberar uma versão trial para você e solicitar que você escolha um número de telefone.
Preparando o projeto
-
Crie um novo projeto Rails rodando:
1rails new sending_sms -
Coloque no seu Gemfile:
1gem 'twilio-ruby' -
Rode no console:
1bundle install -
Gere um controller e uma view para enviarmos o SMS rodando:
1rails g controller Messages new create -
Rode no console:
1rails db:create db:migrate -
Atualize o routes colocando:
1234Rails.application.routes.draw doroot 'messages#new'post '/messages', to: 'messages#create'end
Incluindo as credenciais
-
Abra os credentials (saiba mais sobre eles clicando aqui) do Rails rodando:
1EDITOR=nano rails credentials:edit -
Inclua no final (substituindo as *** por suas credenciais do Twilio):
123twilio_phone_number: *********************twilio_account_sid: ***********************twilio_account_token: *********************** -
Feche o nano:
-
Pressione: ctrl + x
-
Pressione: s
-
Pressione a tecla ENTER
-
-
Crie um arquivo chamado twilio.rb em config/initializers
1touch config/initializers/twilio.rb -
Coloque nele:
1234Twilio.configure do |config|config.account_sid = Rails.application.credentials.twilio_account_sidconfig.auth_token = Rails.application.credentials.twilio_auth_tokenend
Preparando o Service
-
Crie um service para enviar o SMS rodando:
12mkdir app/servicestouch app/services/send_sms.rb -
Nele coloque:
1234567891011121314151617class SendSMSattr_reader :message, :numberdef initialize(message, number)@message = message@number = numberenddef callclient = Twilio::REST::Client.newclient.messages.create({from: Rails.application.credentials.twilio_phone_number,to: @number,body: @message})endend
Preparando o Controller e a View
-
No controller Message coloque:
12345678910class MessagesController < ApplicationControllerdef newflash[:notice] = params[:notice]enddef createSendSMS.new(params[:message], params[:number]).callredirect_to(action: 'new', notice: 'SMS enviado o/')endend -
Na view app/views/messages/new coloque:
123456789101112131415<h3>Envie seu SMS</h3><hr><%= form_with(url: 'messages', remote: false) do |form| %>Mensagem: <%= form.text_area :message %><br><br>Número: <%= form.text_field :number %><br><br><%= form.submit 'Enviar SMS' %><% end %><hr><% if flash[:notice] %><div><%= flash[:notice] %></div><% end %>
Testando
-
Depois de garantir que tudo está Ok (códigos e credenciais) suba o servidor:
1rails s -
Preencha o Form com a mensagem que você gostaria de enviar e seu número (+55 DDD Número) e clique em ENVIAR SMS
Conclusão
Enviar SMS’s usando serviços com o Twilio é realmente muito fácil, caso você tenha ficado com alguma dúvida sobre esse processo vale a pena visitar a documentação oficial do Twilio clicando aqui.
Caso você deseje ver por aqui um Screencast ensinando como receber SMS’s usando o Twilio ou como implementar uma checagem dupla no registro de usuários (usando SMS) deixa um comentário ai em baixo dizendo “quero mais tutoriais sobre SMS”.
Espero que você tenha curtido esse conteúdo e que você compartilhe ele com outros programadores, Muito Obrigado 😀
Leonardo Scorza.

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!
Fique por dentro de todos os conteúdos o/
Nossas redes sociais:
📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
📱 • myers briggs dating app
🐦 • myers briggs dating
Nossos cursos:
🥇 • dating after 40
💎 • Curso Completo de Ruby
⚙ • Minicurso: API Rails 5 Completo
🐞 • Minicurso de Testes para Ruby on Rails com RSpec
Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
Estamos aqui para você 🙂
Bem-vindo à família OneBitCode o/
quero mais tutoriais sobre SMS
Obrigado pelo comentário o/
quero mais tutoriais sobre SMS
Obrigado pelo comentário o/
Los tutoriales de OneBitCode son los mejores, con este tutorial fue una gran oportunidad para conocer de este tipo de tecnología. Gracias
Fico feliz que tenha gostado Fabián o/
Oláa OneBitCode. Muito bom o APP!
Usei pra ajudar um amigo a aprender um pouco sobre Rails. Mas ai essa parte está trocado (já troquei :] )
Um abraçoo
Hola estou tengo problemas para o envio me esta saido esta mensagen
Started POST “/messages” for ::1 at 2019-09-26 12:49:48 -0400
Processing by MessagesController#create as JS
Parameters: {“utf8″=>”✓”, “authenticity_token”=>”UyzLRkoPKQZP1jmES8k3UkwbQL/UP53u4SbGP6MCnhFuojm4pOo1c+zjr6XdGhzH0A/m0ria0nUMEOcaPYaMfg==”, “message”=>”hola marcos “, “number”=>”+595973167890”, “commit”=>”Enviar SMS”}
Completed 500 Internal Server Error in 1459ms (ActiveRecord: 0.0ms)
Twilio::REST::RestError ([HTTP 404] 20404 : Unable to create record
The requested resource /2010-04-01/Accounts//Messages.json was not found
https://www.twilio.com/docs/errors/20404
):
app/services/send_sms.rb:9:in
call'
create’app/controllers/messages_controller.rb:7:in
quero mais tutoriais sobre SMS
Pode fazer um vídeo?
Pode fazer um video sobre ? É seguro criar aplicações de login neste formato
Mais duvidas:
Nivel conhecimento;
Tempo aprendizagem
Fiz, refiz… e por ultimo fiz novamente mas copiando e colando os cods do tudo. ERRO rs
Started POST “/messages” for ::1 at 2019-11-18 18:40:55 -0300
Processing by MessagesController#create as JS
Parameters: {“utf8″=>”✓”, “authenticity_token”=>”A5eLkkkvMvZHNHIl7KWADYXwdFE+XgGfF42+zuqTKdB6H8UMbpYGvse4SegMoHf8IknhkEjMb/LHCeVrR9B3FA==”, “message”=>”dsadas”, “number”=>”+5521995891071”, “commit”=>”Enviar SMS”}
Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.0ms)
NameError (undefined local variable or method `’ for SendSMS:Class):
Aqui aconteceu o mesmo erro cara :/
Opa e ai pessoal 🙂
Parece um problema no Rails na hora de carregar a pasta services.
Aqui tem várias maneiras de solucionar isso: https://stackoverflow.com/questions/32873343/why-doesnt-rails-autoload-classes-from-app-services