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

Menu

Expand
Calificar esta página:

Cómo usar bash o zsh para enviar un SMS desde un número de Twilio nuevo

Aumentemos nuestras habilidades de hacking de shell mediante la utilización de la API de Twilio para enviar un mensaje de texto directamente en bash o zsh. Veremos cómo encontrar un número disponible, comprarlo y enviar todos los SMS sin dejar la comodidad de la línea de comandos.

¡Empecemos!

Establecer las credenciales de Twilio en bash o zsh

Empieza por hacer clic en la consola de Twilio. Inicia sesión o regístrate para obtener una cuenta gratuita (asegúrate de verificar tu número) y busca el Account Summary (Resumen de la cuenta), como se muestra a continuación:

Twilio Account Summary section of the console

Deberás reemplazar los valores de las variables del account_sid y auth_token que se muestran a continuación por las variables de ACCOUNT SID (SID de cuenta) y AUTH TOKEN (Token de autenticación) copiadas de la consola de Twilio. Haz clic en el ícono de ojo para exponer tu auth token (token de autenticación) y, a continuación, cópialo y pégalo en el shell.

account_sid="YOUR_ACCOUNT_SID_OF_THE_FORM_ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token="YOUR_AUTH_TOKEN"

Estos valores no se generan en la línea de comandos; los acabamos de extraer de la página de tu cuenta de Twilio en la consola y los agregamos de forma manual a las variables que pondremos en práctica en el siguiente paso.

Encontrar un número de Twilio con curl en bash y zsh

Con nuestro account SID (SID de cuenta) y auth token (token de autentificación) configurados, ahora podemos consultar a la API REST de Twilio los números de teléfono programables. Necesitamos uno para enviar un SMS en nuestro 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 

Al copiar y pegar ese comando, la variable available_number se establecerá en el primer número disponible que devuelva Twilio.

Estamos haciendo algunas cosas en esta línea, las desglosaremos aquí:

  1. available_number= en bash o zsh es la sintaxis para definir una variable local. Los caracteres de acento grave (`) significan que lo que contienen los acentos se ejecutará y se establecerá en available_number.
  2. curl -X GET "https://api.twilio.com/[omitted] -u "${account_sid}:${auth_token}" utiliza el paquete de software curl y el verbo HTTP GET para solicitar al punto final de números disponibles de Twilio un número disponible. -u significa que proporcionaremos las credenciales de la cuenta mediante la autenticación HTTP básica. La sintaxis ${variable_name} dentro de las comillas dobles sustituye los nombres de variables que establecimos anteriormente en el comando.
  3. | es el carácter de barra vertical. Significa que los resultados del comando anterior se transfieren al siguiente.
  4. sed -n "/PhoneNumber/{s/.*<PhoneNumber>//;s/<\/PhoneNumber.*//;p;}"utiliza el paquete de manipulación de secuencias sed para extraer solo la primera aparición de las etiquetas <PhoneNumber> de la respuesta XML de Twilio.
  5. && (signo et doble) significa que el siguiente comando se ejecutará inmediatamente después de que los otros terminen.
  6. echo $available_number es una comprobación de que recibimos un resultado, lo que imprime el contenido de la variable en el shell.

Los usuarios avanzados deberán tener en cuenta que el valor US después de AvailablePhoneNumbers en el URI es el código de país ISO.

Si no tienes una cuenta de prueba, estás a punto de gastar dinero en la compra de un número. Consulta nuestra página de precios para obtener más información.

Comprar un número de teléfono de Twilio en bash o zsh

Ahora que encontramos un número de teléfono de Twilio que está disponible para la compra, tenemos que ponerle un timbre. El siguiente comando comprará el número de teléfono que acabamos de encontrar y lo agregará a nuestra cuenta:

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

Después de ejecutar este comando, serás el feliz propietario de un número de teléfono nuevo proporcionado por Twilio. Si no lo eres, es probable que ya hayan comprado el número. Solo vuelve a ejecutar el paso “número disponible” e inténtalo de nuevo.

Realizamos algunos cambios aquí cuando usamos curl con el punto final IncomingNumber:

  • Ahora estamos usando el método HTTP POST.
  • Estamos realizando una solicitud POST del parámetro PhoneNumber en el punto final IncomingPhoneNumbers y sustituyendo el número de teléfono que encontramos en el último paso.

Si todo se completó de forma correcta y ahora tienes el $available_number, estamos casi listos para la gran recompensa.

Enviar un SMS con Twilio en bash o zsh

Cambia la siguiente variable your_number a tu número de Twilio verificado y ejecuta lo siguiente:

your_number="+15555555555"
curl -X POST -d "Body=Hola, tu nuevo número de teléfono está funcionando". \
    -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á una solicitud POST al punto final de mensajes con tres parámetros necesarios: Body, From y To. Puedes explorar todas las variables para el punto final de mensajes a fin de conocer cómo puedes enviar imágenes o establecer las URL de devolución de llamada para que se actualicen sobre el estado de entrega de los mensajes.

Si todo salió bien, ahora el teléfono debería vibrar, sonar o la pantalla debería parpadear. Intenta enviar SMS a otros números o incluso cambiar el cuerpo para agregar emojis.

Con Twilio en tu shell, el mundo es tu centro

Indagar en la API de Twilio sin salir de la comodidad de tu shell favorito es una gran manera de explorarla y de agregar comunicación a tus scripts de línea de comandos. Ahora puedes buscar números, comprar números y enviar mensajes SMS con las herramientas *NIX incorporadas y zsh o bash.

Estudio adicional:

Paul Kamp Kevin Segovia Daniel Erazo
Calificar esta página:

¿Necesitas ayuda?

Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.

Gracias por tus comentarios.

Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

Enviando tus comentarios…
🎉 Gracias por tus comentarios.
Se produjo un error. Inténtalo de nuevo.

Gracias por tus comentarios.

thanks-feedback-gif