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:

Como usar bash ou zsh para enviar um SMS de um novo número da Twilio

Vamos nivelar nossas habilidades de hacking de shell utilizando a API da Twilio para enviar uma mensagem de texto diretamente no bash ou zsh. Vamos encontrar um número disponível, comprá‐lo e enviar SMSs sem deixar o conforto da linha de comando.

Vamos começar!

Defina suas credenciais da Twilio no bash ou zsh

Comece clicando no Twilio console (console da Twilio). Faça login ou inscreva‐se para uma conta gratuita — não deixe de verificar seu número — e procure o Resumo de contas conforme mostrado abaixo:

Twilio Account Summary section of the console

Você vai querer substituir os valores das variáveis account_sid e auth_token mostradas abaixo pelas variáveis ACCOUNT SID (SID DA CONTA) e AUTH TOKEN (TOKEN DE AUTENTICAÇÃO) copiadas do console da Twilio. Clique no ícone de globo ocular para expor seu auth token (token de autenticação) e copie‐o e cole‐o no shell.

account_sid="YOUR_ACCOUNT_SID_OF_THE_FORM_ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token="YOUR_AUTH_TOKEN"

Esses valores não são gerados na linha de comando, nós apenas os pegamos da página da sua conta da Twilio no console e os adicionamos manualmente às variáveis​que usaremos na próxima etapa.

Encontrar um número da Twilio com curl no bash e zsh

Com nosso Account SID (SID da conta) e o Auth token (token de autenticação) configurados, agora podemos consultar a API REST da Twilio para obter números de telefone programáveis. Precisamos de um para enviar um SMS a partir do nosso script:

available_number=`curl -X GET \
    "https://api.twilio.com/2010-04-01/Accounts/${account_sid}/AvailablePhoneNumbers/US/Local"  \
    -u "${account_sid}:${auth_token}" | \
    sed -n "/PhoneNumber/{s/.*<PhoneNumber>//;s/<\/PhoneNumber.*//;p;}"` \
    && echo $available_number 

Copiar e colar esse comando definirá a variável available_number para o primeiro número disponível retornado pela Twilio.

Estamos fazendo algumas coisas nesta linha, vamos desempacotá‐las aqui:

  1. available_number= no bash ou zsh, é a sintaxe para definir uma variável local. Os caracteres com aspas invertidas (`) significam que o conteúdo das aspas será executado e definido como available_number.
  2. curl -X GET "https://api.twilio.com/[omitted] -u "${account_sid}:${auth_token}"usa o curl do pacote do software e o verbo HTTP GET pera pedir o available numbers endpoint (endpoint dos números disponíveis) da Twilio para um número disponível. -u significa que forneceremos credenciais de conta por HTTP Basic Auth (autenticação básica de HTTP). A sintaxe ${variable_name} dentro de aspas duplas substitui os nomes das variáveis que definimos anteriormente no comando.
  3. | é o caractere de barra vertical. Isso significa que os resultados do comando anterior são passados para o próximo.
  4. sed -n "/PhoneNumber/{s/.*<PhoneNumber>//;s/<\/PhoneNumber.*//;p;}"usa o stream manipulating package sed (sed do pacote de manipulação de fluxos) para extrair apenas a primeira ocorrência das tags <PhoneNumber> da resposta XML da Twilio.
  5. && (“e” comercial duplo) significa que o comando a seguir será executado imediatamente após o término dos outros.
  6. echo $available_number é uma verificação de integridade de que recebemos uma saída, imprimindo o conteúdo da variável no shell.

Os usuários avançados vão querer notar que o US depois de AvailablePhoneNumbers no URI é o ISO Country Code (Código de país ISO).

Se você não estiver em uma conta de teste, está prestes a gastar dinheiro para comprar um número. Confira our pricing page (nossa página de preços) para obter mais detalhes.

Comprar um número de telefone da Twilio no bash ou zsh

Agora que encontramos um número de telefone da Twilio disponível para compra, precisamos colocar um toque nele. O seguinte comando comprará o número de telefone que acabamos de encontrar e o adicionará à nossa conta:

curl -X POST -d "PhoneNumber=${available_number}" \
    "https://api.twilio.com/2010-04-01/Accounts/${account_sid}/IncomingPhoneNumbers" \
    -u "${account_sid}:${auth_token}"

Depois de executar este comando, você será o feliz proprietário de um novo número de telefone fornecido pela Twilio. Se não conseguir o telefone, é provável que o número tenha acabado de ser comprado. Basta executar novamente a ‘available number’ step (etapa “número disponível”) e tentar novamente.

Fizemos algumas alterações aqui quando usamos curl com o endpoint IncomingNumber (Número recebido):

  • Agora estamos usando o método HTTP POST.
  • Estamos POSTando o parâmetro PhoneNumber para o endpoint IncomingPhoneNumbers e substituindo o número de telefone que encontramos na última etapa.

Assumindo que tudo foi concluído com sucesso e agora você possui o $available_number, estamos quase prontos para o grande resultado.

Enviar um SMS com a Twilio no bash ou zsh

Altere a variável your_number abaixo para seu número verificado da Twilio e execute o seguinte:

your_number="+15555555555"
curl -X POST -d "Body=Hi there, your new phone number is working." \
    -d "From=${available_number}" -d "To=${your_number}" \
    "https://api.twilio.com/2010-04-01/Accounts/${account_sid}/Messages" \
    -u "${account_sid}:${auth_token}"

Este comando enviará uma solicitação POST ao endpoint Mensagens com três parâmetros necessários: Body, Frome To. Você pode explorar todas as variables for the Messages endpoint (variáveis para o endpoint Mensagens) para ver como você pode enviar imagens ou definir URLs de retorno de chamada para se atualizar sobre o status de entrega de mensagens.

Se tudo correu bem, agora você deve ter um telefone tocando, emitindo bipes ou piscando. Tente enviar SMSs para outros números ou até mesmo alterar o corpo para add emojis (adicionar emojis).

Com a Twilio na sua concha (shell), o mundo é sua ostra

Explorar a API da Twilio sem deixar o conforto do seu shell favorito é uma ótima maneira de explorar a API da Twilio e adicionar comunicação aos seus scripts de linha de comando. Agora você pode pesquisar números, comprar números e enviar mensagens por SMS usando ferramentas *NIX integradas e zsh ou bash.

Estudo adicional:

Paul Kamp Kevin Segovia Daniel Erazo
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