sudo pip install sms-python-client
Integra el envío de SMS con Python con la API SMS de Altiria.
Hay varias opciones para la integración:
La forma recomendada de instalar el cliente sms-python-client de Altiria es a través de pip.
sudo pip install sms-python-client
git clone https://github.com/altiria/sms-python-client.git cd sms-python-client python setup.py install
from sms_api.altiria_client import * try: client = AltiriaClient('miusuario@email.com', 'contraseña') textMessage = AltiriaModelTextMessage('346XXXXXXXX', 'Mensaje de prueba') jsonText = client.sendSms(textMessage) print('¡Mensaje enviado!') except AltiriaGwException as ae: print('Mensaje no aceptado:'+ae.message) print('Código de error:'+ae.status) except JsonException as je: print('Error en la petición:'+je.message) except ConnectionException as ce: if "RESPONSE_TIMEOUT" in ce.message: print('Tiempo de respuesta agotado:'+ce.message) else: print('Tiempo de conexión agotado:'+ce.message)
A continuación se ofrece un extracto de código simplificado utilizando las librerías httplib y urllib. Se puede usar como punto de partida para una puesta en marcha rápida.
Se recomienda analizar con detalle la documentación técnica de envío de SMS masivo, API SMS. En particular resulta de especial interés capturar la respuesta emitida por la pasarela HTTP para conocer el resultado de la operación.
También se puede obtener información sobre el envío de mensajes concatenados (más longitud de la habitual), caracteres UNICODE o la solicitud de confirmación de entrega.
Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.
# -*- coding: utf-8 -*-
# Copyright (c) 2021, Altiria TIC SL
# All rights reserved.
# El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
# Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
# más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
# https://www.altiria.com/api-envio-sms/
import requests
def altiriaSms(destinations, message, senderId, debug):
if debug:
print 'Enter altiriaSms: '+destinations+', message: '+message+', senderId: '+senderId
try:
#Se crea la lista de parámetros a enviar en la petición POST
#YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
payload = [
('cmd', 'sendsms'),
('login', 'YY'),
('passwd', 'ZZ'),
#No es posible utilizar el remitente en América pero sí en España y Europa
('senderId', senderId),
('msg', message)
]
#add destinations
for destination in destinations.split(","):
payload.append(('dest', destination))
#Se fija la codificacion de caracteres de la peticion POST
contentType = {'Content-Type':'application/x-www-form-urlencoded;charset=utf-8'}
#Se fija la URL sobre la que enviar la petición POST
url = 'http://www.altiria.net/api/http'
#Se envía la petición y se recupera la respuesta
r = requests.post(url,
data=payload,
headers=contentType,
#Se fija el tiempo máximo de espera para conectar con el servidor (5 segundos)
#Se fija el tiempo máximo de espera de la respuesta del servidor (60 segundos)
timeout=(5, 60)) #timeout(timeout_connect, timeout_read)
if debug:
if str(r.status_code) != '200': #Error en la respuesta del servidor
print 'ERROR GENERAL: '+str(r.status_code)
else: #Se procesa la respuesta
print 'Código de estado HTTP: '+str(r.status_code)
if (r.text).find("ERROR errNum:"):
print 'Error de Altiria: '+r.text
else:
print 'Cuerpo de la respuesta: \n'+r.text
return r.text
except requests.ConnectTimeout:
print "Tiempo de conexión agotado"
except requests.ReadTimeout:
print "Tiempo de respuesta agotado"
except Exception as ex:
print "Error interno: "+str(ex)
print 'The function altiriaSms returns: \n'+altiriaSms('346xxxxxxxx,346yyyyyyyy','Mesaje de prueba', '', True)
#No es posible utilizar el remitente en América pero sí en España y Europa
#Utilizar esta llamada solo si se cuenta con un remitente autorizado por Altiria
#print 'The function altiriaSms returns: \n'+altiriaSms('346xxxxxxxx,346yyyyyyyy','Mesaje de prueba', 'remitente', True)
Sin cuotas de alta
Sin cuotas de mantenimiento
La API SMS se puede utilizar con los siguientes protocolos de comunicación:
Descarga
Guía para la integración de SMS API
Lista de tareas detallada, checklist, para asegurarte que no se olvida nada importante en la integración de API SMS. Independiente del lenguaje de programación elegido.
Descubre las funcionalidades avanzadas de Altiria para el envío de SMS
Confirmación de entrega
Remitente personalizado
Estadísticas
Programación de envíos
SMS largos, más de 160 caracteres
Editor de landing
Unicode. Acentos y otros alfabetos
Elimina teléfonos duplicados
Textos personalizados
Plantillas de mensajes
Recordatorio de citas