You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Classifique esta página:

Início rápido do Programmable Voice para Ruby

Com apenas algumas linhas de código, seu aplicativo Ruby pode fazer e receber chamadas telefônicas com o Programmable Voice da Twilio.

Este início rápido do Ruby ensina como fazer isso usando nossa API REST, a biblioteca auxiliar Twilio Ruby e a estrutura Sinatra do Ruby para facilitar o desenvolvimento.

Neste início rápido, você aprende a:

1. Inscrever‐se na Twilio e obter seu primeiro número de telefone habilitado para voz
2. Configurar o ambiente de desenvolvimento para fazer e receber chamadas telefônicas
3. Fazer uma chamada telefônica que reproduza um MP3
4. Receber e responder a uma chamada telefônica de entrada que leia uma mensagem para o autor da chamada usando conversão de texto em voz


Prefere começar assistindo a um vídeo? Confira nosso vídeo no YouTube sobre como fazer e receber chamadas telefônicas com Ruby.

Mostre‑me como se faz!

Inscreva‐se na Twilio e obtenha um número de telefone

Se já tiver uma conta e um número de telefone da Twilio habilitado para voz, tudo está em ordem! Faça login e fique à vontade para ir para a próxima etapa.

Para fazer uma chamada telefônica no Ruby, você precisa de uma conta Twilio. Inscreva‐se aqui para obter sua conta de avaliação gratuita ou faça login em uma conta que você já possui.


A próxima coisa que você precisa é um número de telefone da Twilio com capacidade de voz. Se você não possui atualmente um número de telefone da Twilio com funcionalidade de chamada de voz, precisará adquirir um. Após navegar até a página Comprar um número, marque a caixa "Voice" (Voz) e clique em "Search" (Pesquisar).

Search for a voice-enabled phone number

Você verá uma lista de números de telefone disponíveis e seus recursos. Encontre um número que se adapte às suas necessidades e clique em "Buy" (Comprar) para adicioná‐lo à sua conta.

Purchase a voice-enabled phone number from Twilio

Com uma conta Twilio e um número de telefone programável, você tem as ferramentas básicas necessárias para fazer uma chamada telefônica.

Você pode usar a API HTTP da Twilio para fazer chamadas telefônicas, mas simplificaremos ainda mais usando a biblioteca auxiliar oficial do Ruby da Twilio. Vamos instalar em seguida.

Leve‑me até a configuração.

Instale o Ruby e a biblioteca auxiliar da Twilio

Se você já passou por outro de nossos inícios rápidos do Ruby e já tem o Ruby e a biblioteca auxiliar da Twilio Ruby instalada, você pode pular esta etapa e ir direto para fazer a primeira chamada telefônica.

Para fazer a primeira chamada telefônica, instale o Ruby e a biblioteca auxiliar Twilio Ruby.

Instalar o Ruby

Se você estiver usando uma máquina Mac ou Linux, provavelmente já tem o Ruby instalado. Você pode verificar isso abrindo um terminal e executando o seguinte comando:

ruby --version

Você deve ver algo como:

$ ruby --version
ruby 2.7.2

Os usuários do Windows podem usar o RubyInstaller para instalar o Ruby.

O SDK Ruby da Twilio é testado e suporta versões Ruby de 2.4 a 3.0. (Tem uma versão mais antiga do Ruby? Você pode usar rbenv, RVM ou Homebrew para atualizar para a versão mínima suportada.)

Instalar a biblioteca auxiliar Twilio Ruby

A maneira mais fácil de instalar o twilio-ruby é com as RubyGems.

gem install twilio-ruby


Instalação manual
Ou, você pode clonar o código‐fonte para twilio-ruby e instalar a biblioteca a partir daí.

"Permission Denied"
Se a linha de comando der uma longa mensagem de erro contendo a mensagem Permission Denied (Permissão negada), tente executar o comandos acima com sudo: sudo gem install twilio-ruby.

Tudo pronto! Vamos fazer uma chamada telefônica.

Fazer uma chamada telefônica com Ruby

Agora que temos o Ruby e o twilio-ruby instalados, podemos fazer uma chamada telefônica com uma única solicitação de API do número de telefone Twilio que acabamos de comprar. Crie um novo arquivo chamado make_call.rb e digite ou cole nesta amostra de código.

        
        
        

        Make a phone call using Twilio

        Esse código inicia uma chamada telefônica entre os dois números de telefone que passamos como argumentos. O número "from" (de) é o nosso número Twilio, e o número "to" (para) é o número para o qual desejamos ligar.

        O argumento URL aponta para alguns TwiML (Twilio Markup Language), que informa à Twilio o que fazer a seguir quando o destinatário atender o telefone. Este TwiML diz ao Twilio para ler uma mensagem usando conversão de texto em voz e depois reproduzir um MP3.

        No entanto, antes que esse código funcione, precisamos editá‐lo um pouco para trabalhar com sua conta do Twilio.

        Substitua os valores de credencial do espaço reservado

        Troque os valores de espaço reservado para account_sid e auth_token com suas credenciais pessoais do Twilio.

        Faça login em https://www.twilio.com/console. Nesta página, você encontrará seu Account SID (SID da conta) e o Auth Token (token de autenticação) exclusivos, que serão necessários sempre que enviar mensagens por meio do Twilio Client como essa. Você pode revelar seu Auth Token (token de autenticação) clicando no ícone de olho:

        Reveal Your Auth Token

        Abra make_call.rb e substitua os valores de account_sid e de auth_token por seus valores exclusivos.

        Observe: não há problema em codificar suas credenciais ao começar, mas você deve usar variáveis de ambiente para mantê-las secretas antes de implantar na produção. Confira como definir variáveis de ambiente para obter mais informações.

        Substituir os números de telefone to (para) e from (de)

        Lembra daquele número de telefone habilitado para voz que você acabou de comprar? Use‐o para substituir o número existente from (de) por aquele, certificando‐se de usar a formatação E.164:

        [+][código do país][número de telefone incluindo código de área]

        Em seguida, substitua o número de telefone to (para) pelo seu número de telefone celular. Pode ser qualquer número de telefone que possa receber chamadas, mas é recomendável testar com o seu telefone para ver a magia em ação! Como acima, você deve usar a formatação E.164 para esse valor.

        Salve as alterações e execute o script no terminal:

        ruby make_call.rb


        É isso! Seu telefone deve tocar com uma chamada do seu número Twilio e você ouvirá uma breve mensagem nossa. 😉

        Se você estiver usando uma conta de avaliação da Twilio, as chamadas telefônicas de saída serão limitadas aos números de telefone verificados com o Twilio. Os números de telefone podem ser verificados por meio dos IDs de autor da chamada verificados do console Twilio. Para outras restrições e limitações da conta de avaliação, consulte nosso guia sobre como trabalhar com sua conta de avaliação gratuita da Twilio.

        Em seguida, aprenderemos a responder a uma chamada feita para o número de telefone Twilio. Primeiro, precisamos de um servidor Sinatra em funcionamento.

        Vamos lá!

        Instale o Sinatra e configure seu ambiente de desenvolvimento

        Para receber e responder mensagens SMS recebidas, precisaremos criar um aplicativo da Web muito leve que possa aceitar solicitações recebidas. Usaremos o Sinatra para este Início rápido, mas se preferir usar o Rails, você pode encontrar instruções nesta postagem do blog.

        Primeiro, você precisa de um arquivo do Gemcom o seguinte conteúdo:

        # Gemfile
        source 'https://rubygems.org'

        gem 'sinatra'
        gem 'twilio-ruby'

        Os projetos Ruby usam o Bundler para gerenciar dependências, de modo que o comando para puxar o Sinatra e o Twilio SDK para o nosso ambiente de desenvolvimento é a instalação do pacote. (Se você ainda não tiver o Bundler instalado em sua máquina, será necessário executar o gem install bundler).

        $ bundle install
        ...
        Use `bundle show [gemname]` para ver onde uma gem empacotada está instalada.

        Criar um aplicativo Sinatra simples

        Podemos testar se o ambiente de desenvolvimento está configurado corretamente criando um aplicativo Sinatra simples. Vamos pegar o exemplo da documentação do Sinatra e colocá‐lo em um novo arquivo chamado `quickstart.rb`.

        require 'sinatra'
        require 'twilio-ruby'

        get '/' do
        content_type 'text/xml'

        Twilio::TwiML::VoiceResponse.new do | response |
        response.say(message: "Hello World")
        end.to_s
        end

        Podemos então tentar executar nosso novo aplicativo Sinatra com o comando ruby quickstart.rb. Em seguida, você pode abrir o http://localhost:4567 no navegador e deve ver a resposta <?xml version="1.0" encoding="UTF-8"?><Response><Say>Hello World</Say></Response>.

        Tudo pronto. Como a Twilio se comunica com o novo aplicativo?

        Permitir que a Twilio se comunique com o aplicativo Sinatra

        Estamos criando um pequeno aplicativo Sinatra para aceitar chamadas telefônicas recebidas. Antes disso, precisamos ter certeza de que a Twilio pode acessar nosso aplicativo.

        A maioria dos serviços Twilio usa webhooks para se comunicar com seu aplicativo. Quando o Twilio recebe uma chamada telefônica, por exemplo, ele acessa um URL em seu aplicativo para obter instruções sobre como lidar com a chamada.

        Quando você está trabalhando no seu aplicativo Sinatra em seu ambiente de desenvolvimento, seu aplicativo só pode ser acessado por outros programas em seu computador, então o Twilio não poderá se comunicar com ele. Precisamos resolver esse problema tornando seu aplicativo acessível pela Internet.

        Embora haja muitas maneiras de fazer isso, como implantar seu aplicativo no Heroku ou AWS, você provavelmente desejará uma maneira menos trabalhosa de testar seu aplicativo Twilio. Para uma maneira leve de disponibilizar seu aplicativo na internet, recomendamos uma ferramenta chamada ngrok. Uma vez iniciado, o ngrok fornece um URL exclusivo no domínio ngrok.io que encaminha as solicitações recebidas para o seu ambiente de desenvolvimento local.

        Funciona mais ou menos assim:

        How ngrok helps Twilio reach your local server

        Se você ainda não usa o ngrok, acesse a página de download e pegue o binário apropriado para o seu sistema operacional. Após o download, descompacte o pacote.

        Se você estiver trabalhando em um Mac ou Linux, está tudo pronto. Se você estiver no Windows, siga nosso guia sobre como instalar e configurar o ngrok no Windows. Para obter mais informações sobre o ngrok, incluindo ótimas dicas e truques, confira esta postagem detalhada no blog.

        Depois de configurar o ngrok, inicie o aplicativo Sinatra que fizemos anteriormente:

        ruby quickstart.rb

        Seu aplicativo deve estar sendo executado localmente para que o ngrok cumpra seu papel.

        Em seguida, abra uma nova guia ou janela de terminal e inicie o ngrok com este comando:

        ./ngrok http 4567

        A porta padrão para aplicativos Sinatra é 4567. Se o seu servidor local for executado em uma porta diferente, substitua 4567 pelo número de porta correto.

        A saída deve ser semelhante a esta:

        Ngrok server terminal output

        Copie o URL público desta saída e cole‐o no navegador. Se tudo estiver funcionando corretamente, você deverá ver a mensagem <?xml version="1.0" encoding="UTF-8"?><Response><Say>Hello World</Say></Response> no aplicativo Sinatra.

        Meu servidor está acessível publicamente. Me ensine a receber chamadas telefônicas!

        Atender chamadas recebidas com a Twilio

        Quando seu número Twilio recebe uma chamada telefônica, ele envia uma solicitação HTTP ao seu servidor para obter instruções sobre o que fazer a seguir. Depois de receber a solicitação, você pode dizer à Twilio como atender a chamada.

        Para este início rápido, nosso aplicativo Sinatra responderá para atender a ligação e enviar uma mensagem curta ao autor da chamada. Abra o quickstart.rb novamente e atualize o código para que ele se pareça com este exemplo de código:

              
              
              
              Respond to an incoming request from Twilio with instructions on how to handle the call

              Respond to an incoming call with a brief message

              Respond to an incoming request from Twilio with instructions on how to handle the call

              Responder a uma solicitação recebida da Twilio com instruções sobre como lidar com a chamada

              Salve o arquivo e reinicie seu aplicativo com

              ruby quickstart.rb

              Agora, abra um navegador da Web em http://localhost:4567/answer. Se você visualizar o código-fonte da página, verá o seguinte texto:

              <?xml version="1.0" encoding="UTF-8"?>
              <Response>
              <Say">Thank you for calling! Have a great day.</Say>
              </Response>

              Este código fonte é um XML TwiML gerado pelo seu código com a ajuda da biblioteca auxiliar da Twilio.

              Verifique novamente se o ngrok ainda está em execução no host local com a mesma porta de antes. Agora, a Twilio poderá encontrar seu aplicativo. Há apenas uma última coisa que precisamos antes de estarmos prontos para chamar seu aplicativo: precisamos informar a Twilio para onde enviar sua solicitação.

              Configurar o webhook do URL

              Para que a Twilio saiba onde procurar, você precisa configurar seu número de telefone Twilio para ligar para o URL do seu webhook sempre que receber uma chamada.

              1. Faça login no twilio.com e vá para a página Números no console.
              2. Clique em seu número de telefone habilitado para voz.
              3. Localize a seção Voice & Fax (Voz e fax). Você precisa do padrão "CONFIGURE WITH" (Configure com): "Webhooks, TwiML Bins, [etc.]"
              4. Na seção "A CALL COMES IN" (Uma chamada é recebida), selecione "Webhook" e cole o URL que você deseja usar (não se esqueça do endpoint /answer!).

              Configure webhook on phone number for voice

              Salve suas alterações. Está tudo pronto!

              Teste seu aplicativo

              Desde que seu host local e seu servidor ngrok estejam em execução, estamos prontos para a parte divertida: testar nosso novo aplicativo Sinatra!

              Faça uma chamada telefônica do celular para o número de telefone Twilio. Você deve ver uma solicitação HTTP no console do ngrok. Seu aplicativo Sinatra processará a solicitação recebida e atenderá com seu TwiML. Em seguida, você ouvirá sua mensagem assim que a chamada for conectada.

              Funcionou! Tudo pronto. O que vem a seguir?

              Para onde ir em seguida?

              Agora você sabe o básico de fazer e responder a chamadas telefônicas com Ruby.

              Nosso aplicativo Sinatra usou apenas o verbo TwiML <Say> para ler uma mensagem para o autor da chamada usando conversão de voz, mas você pode fazer muito mais com diferentes verbos TwiML como <Record>, <Gather> e <Conference>.

              Confira estas páginas para saber mais:


              Estamos ansiosos para ver o que você vai criar!

              Classifique esta página:

              Precisa de ajuda?

              Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

                    
                    
                    

                    Obrigado pelo seu feedback!

                    Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                    Enviando seu feedback...
                    🎉 Obrigado pelo seu feedback!
                    Algo deu errado. Tente novamente.

                    Obrigado pelo seu feedback!

                    thanks-feedback-gif