Enviar mensagens SMS e MMS em C
Hoje, usaremos as C, libcurl e algumas APIs POSIX para enviar mensagens SMS e MMS usando a API REST da Twilio. Fora de um ambiente de compilação compatível com POSIX (pelo menos principalmente), você também precisará de libcurl para o código neste guia.
Vamos começar!
Inscreva‐se (ou faça login) na conta da Twilio
Antes de usar a API da Twilio, você precisará criar uma conta ou fazer login em uma conta existente.
Não tem uma conta? Inscreva-se em uma conta da Twilio gratuitamente.
Encontrar ou comprar um número compatível com SMS
Esta demonstração requer um número de telefone da Twilio com recursos de SMS (e MMS). Você pode usar um número de telefone que já possui ou comprar um novo com SMS ativado.
Veja como os números compatíveis com SMS aparecem na sua lista de números:
E veja como você pode pesquisar um novo número com recursos de SMS (ou MMS, se você também selecioná-lo):
Pré‐requisitos para este guia de envio de SMS em C
Este guia é voltado para ambientes compatíveis com POSIX e foi testado com clang-800.0.42.1 no Mac OSX 10.11, gcc 4.9.2 no Raspbian (kernel 4.4.34-v7 ou superior) e gcc 5.4.0 no Cygwin 2.877 no Windows 7 64 bits. No mínimo, precisaremos de:
- stdio.h, stdlib.h, unistd.h - Bibliotecas C POSIX
- libcurl - Biblioteca de transferência do lado do cliente
libcurl já estava disponível no Mac. No Raspberry Pi, você pode instalar uma versão adequada com:
sudo apt-get install libcurl4-openssl-dev
No Windows 7, consegui instalar o libcurl com o Cygwin Setup:
Criar c_sms
Aqui está nosso exemplo de Makefile, que pode ser usado em todos os três ambientes.
Na maioria dos sistemas do tipo *NIX (inclusive no Cygwin), criar é provavelmente tão fácil quanto:
git clone https://github.com/TwilioDevEd/twilio_c_sms.git
cd twilio_c_sms
make
Talvez seja necessário fazer pequenas edições no Makefile para criar c_sms em seu ambiente. Mais frequentemente, você alterará os caminhos de pesquisa da biblioteca ou o compilador.
Enviar uma mensagem SMS ou MMS com C
Acabamos de criar c_sms, que pode ser chamado a partir da linha de comando e tentaremos enviar um SMS ou MMS antes de sair. twilio.c
inclui uma função , twilio_send_message, que é facilmente adaptável à sua própria base de código (é claro, você precisará adicionar validação e segurança antes de usá‐la na produção. Por exemplo, observe como você pode adicionar mais parâmetros por meio das variáveis!).
Vamos ver como o twilio_send_message funciona.
- Primeiro, preparamos nossas credenciais de conta e parâmetros HTTP para serem consumidos pela API da Twilio.
- Em segundo lugar, precisamos preparar o libcurl para executar um HTTP POST na API da Twilio. As chamadas da função
curl_easy_setopt
instruem a libcurl a postar com o url e o corpo que definimos e a usar nossos detalhes de conta e Auth Token (Token de autenticação). - Em terceiro lugar, executamos nosso POST e depois limpamos com as linhas:
res = curl_easy_perform(curl); curl_easy_cleanup(curl);
- Em quarto lugar, verificamos se há erros na libcurl ou na API da Twilio.
Este é o código para twilio_send_message
em C:
Executar c_sms
Depois que c_sms é criado, é fácil chamá‐lo da linha de comando. Basta inserir as credenciais da sua conta, números de & para e um corpo de mensagem e você acenderá um telefone. Aqui está uma sessão de exemplo:
account_sid=ACXXXXXXXXXXXXXXXXXXXXXX
auth_token=your_auth_token
bin/c_sms -a $account_sid -s $auth_token -t "+18005551212" -f "+18005551213" -m "Hello, World!"
# Opcionalmente, use "-p http://some/path/to/img.jpg" para enviar um MMS.
Você vê o que eu vejo? Hora da sua própria criação
Mais de 45 anos e bilhões de linhas de código depois, é óbvio que Dennis Ritchie projetou uma linguagem para ir além. Agora, a Twilio pode acompanhar você em sua jornada em C com apenas algumas bibliotecas auxiliares e seu caso de uso de SMS e MMS.
Esperamos que este seja um bom ponto de partida; por favor, informe‐nos o que você construiu no Twitter!
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.