
Compartilhar:
Ben é um desenvolvedor que mudou de carreira, tendo atuado anteriormente por uma década nas áreas de educação de adultos, organização comunitária e gestão de organizações sem fins lucrativos. Ele trabalhou como representante de desenvolvedores na Vonage. Escreve regularmente sobre a interseção entre desenvolvimento comunitário e tecnologia. Natural do sul da Califórnia e morador de longa data da cidade de Nova York, Ben reside atualmente perto de Tel Aviv, em Israel.
Como enviar mensagens SMS com o Elixir
Hoje em dia, as mensagens SMS continuam a ser o principal meio de comunicação global, e com o novo SDK experimental SDK do Nexmo para Elixir , você pode começar a enviar mensagens SMS em Elixir. Basta ter uma conta Nexmo, um número de telefone virtual e algumas linhas de código.
Neste tutorial, vamos explicar passo a passo como enviar sua primeira mensagem SMS no Elixir. Você só precisa ter um conhecimento básico do Elixir para começar — faremos o resto juntos!
Se preferir, você também pode clonar uma versão totalmente funcional desse código no GitHub.
Pré-requisitos
Para este tutorial, você precisará do seguinte:
Elixir instalado no seu computador
Suas credenciais da Nexmo e seu número de telefone
Para enviar um SMS, você precisa obter sua chave e seu segredo da API da Nexmo. Você também precisa configurar um número de telefone virtual provisionado pela Nexmo. Vamos fazer isso juntos agora.
Suas credenciais de API
Depois de fazer login no Painel da Nexmo, você verá suas credenciais de API na parte superior da página.
API credentials in the Vonage Developer Dashboard
Anote-os e guarde-os em um lugar seguro; vamos usá-los daqui a pouco.
Seu número de telefone virtual
Nosso próximo passo para nos prepararmos para enviar um SMS é configurar um número de telefone virtual. No Painel da Nexmo, você verá um link suspenso chamado Numbers na barra lateral esquerda. Ao clicar nele, o menu suspenso se expandirá e você verá várias opções. Clique na opção intitulada Buy Numbers.
Buy numbers menu option
Ao acessar a Buy Numbers seção, você poderá pesquisar um número de telefone com base em Country, Features, Type. Você também pode refinar a busca para exibir apenas números de telefone com combinações específicas de dígitos.
Buy Numbers interface
Procure um número de telefone com um código de país que seja conveniente para você. Você só precisa SMS para Features e um Type de Mobile. Depois de clicar no Search botão, você verá uma lista de números possíveis. Você pode escolher qualquer um que quiser clicando no botão laranja Buy botão na parte direita.
Buy number buttons in list of available numbers
Você acabou de configurar com sucesso um número de telefone virtual da Nexmo. Assim como fez com suas credenciais de API, copie seu novo número de telefone e guarde-o em um local seguro. Vamos usá-lo na próxima etapa, quando enviarmos nosso primeiro SMS com o Elixir.
Enviando um SMS com Elixir
Configurando nossa estrutura de código
No seu terminal, crie um novo diretório para armazenar seu projeto em Elixir e, em seguida, acesse esse diretório. Para fins deste tutorial, vamos chamá-lo de send-sms-elixir.
Precisaremos de três arquivos para o nosso projeto. Lembre-se: se você planeja enviar este projeto para um sistema público de controle de versão, certifique-se de não incluir o arquivo .env arquivo, pois ele contém suas informações confidenciais de credenciais.
Quando terminar, você deverá ter três arquivos dentro da sua ./send-sms-elixir pasta:
├── mix.exs
├── send-sms.ex
├── .env Definindo nosso arquivo de mixagem
Todo projeto em Elixir que tenha uma dependência externa precisa criar um arquivo Mix que instale essa dependência no seu projeto. O Mix, para quem não conhece, é semelhante ao Bundler no Ruby ou ao npm no Node.js.
No nosso mix.exs arquivo, definiremos o nome do nosso projeto e duas dependências: o SDK experimental do Nexmo para Elixir e o Envy, um pacote Hex que nos ajuda a gerenciar nossas variáveis de ambiente:
defmodule SendSms.Mixfile do
use Mix.Project
def project do
[app: :send_sms,
version: "0.0.1",
deps: deps]
end
defp deps do
[
{:nexmo, "0.4.0", hex: :nexmo_elixir},
{:envy, "~> 1.1.1"}
]
end
end
Definindo nossas variáveis de ambiente
Anteriormente, criamos nosso número de telefone virtual da Nexmo e obtivemos nossas credenciais da API da Nexmo. Agora, vamos integrá-las ao nosso aplicativo, armazenando-as em nosso .env arquivo. Dentro do seu .env arquivo, insira o seguinte, informando sua chave de API, seu segredo de API e o número de telefone da Nexmo nos locais apropriados:
NEXMO_API_KEY=
NEXMO_API_SECRET=
NEXMO_NUMBER=
SMS_API_ENDPOINT="https://rest.nexmo.com/sms/json"Além da nossa chave de API, do segredo e do número de telefone, também fornecemos o endpoint da SMS API da Nexmo em nosso .env arquivo para ser usado pelo SDK.
Definindo nosso código Elixir
Agora estamos prontos para criar o código que enviará nosso primeiro SMS! Abra o send_sms.ex arquivo e adicione o seguinte:
defmodule SendSms do
use Application
def start(_type, _args) do
unless Mix.env == :prod do
Envy.auto_load
end
end
def send_msg(to_number, message)
Nexmo.Sms.send(
from: System.get_env("NEXMO_NUMBER"),
to: to_number,
text: message
)
end
endNo código acima, definimos um módulo chamado SendSms que possui uma SendSms.start/2 função que carrega nossas variáveis de ambiente a partir do .env arquivo usando o pacote Envy.
Em seguida, criamos uma segunda função chamada SendSms.send/2 que aceita como argumento o número do destinatário para o qual queremos enviar a mensagem de texto e o próprio conteúdo da mensagem. Dentro da função, chamamos a função do SDK do Nexmo para Elixir Nexmo.Sms.send/1 e passamos nosso número virtual da Nexmo (armazenado como uma variável de ambiente), o to_number, e o message.
É isso aí! Agora estamos prontos para executar nosso código e enviar a mensagem.
Executando o aplicativo
A maneira mais simples de executar seu aplicativo e enviar um SMS é carregar seu projeto no iex, um shell interativo do Elixir.
Vamos, primeiro, compilar nosso send_sms.ex arquivo, o que tornará a send_msg/2 função disponível dentro do shell. Para compilá-lo, basta executar na linha de comando: elixirc send_sms.ex. Isso deve levar apenas um instante e, assim que terminar, poderemos executar nosso aplicativo no iex.
Para executar seu projeto no iex a partir da linha de comando, execute o seguinte: iex -S mix. Isso iniciará seu projeto e o abrirá dentro do shell.
Você verá um prompt do shell parecido com este:
Interactive Elixir (1.9.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
Agora você já pode enviar sua mensagem SMS!
iex(1)> SendSms.send_msg(RECIPIENT_NUMBER, "This is powered by Nexmo on Elixir!")
Você receberá da SMS API da Nexmo a confirmação de que a mensagem foi enviada com sucesso, com um código de status HTTP 200.
Parabéns, você conseguiu!
Leitura complementar
Se você tiver interesse em saber mais sobre SMS e Nexmo, fique à vontade para conferir o seguinte:
Compartilhar:
Ben é um desenvolvedor que mudou de carreira, tendo atuado anteriormente por uma década nas áreas de educação de adultos, organização comunitária e gestão de organizações sem fins lucrativos. Ele trabalhou como representante de desenvolvedores na Vonage. Escreve regularmente sobre a interseção entre desenvolvimento comunitário e tecnologia. Natural do sul da Califórnia e morador de longa data da cidade de Nova York, Ben reside atualmente perto de Tel Aviv, em Israel.