API HTTP - acción 'sendmessage'
Este comando de API HTTP puede utilizarse para enviar un mensaje SMS a través de la Pasarela SMS. El comando puede usarse para enviar mensajes SMS de texto u otros tipos de mensajes, como SMS binarios, logos de operador, tonos de llamada, WAP PUSH, etc... Cuando utilices este comando, debes usar un nombre de usuario y contraseña de API HTTP, debes especificar el número de teléfono del destinatario y el texto del mensaje.
Descripción
Para enviar un SMS, utiliza el siguiente formato de URL:
https://127.0.0.1:9508/api?action=sendmessage&username=UUUUU&password=PPPPP&
recipient=NNNNN&messagetype=MMMMM&messagedata=DDDDD
127.0.0.1 es una IP local, por lo que debes reemplazarla por la dirección IP o el nombre de host del ordenador
con la Pasarela SMS Ozeki instalada. (Nota: 127.0.0.1 es una dirección
de loopback local que puede usarse cuando te conectas a la Pasarela SMS
desde el mismo ordenador.) 9508 es el puerto predeterminado de la API HTTP de la Pasarela SMS
Ozeki. Este número de puerto puede verse y editarse en la interfaz de usuario de Ozeki 10 SMS Gateway,
haciendo clic en el botón Avanzado en la barra de herramientas.
"UUUUU" y "PPPPP" deben reemplazarse por el nombre de usuario y contraseña del
usuario que has creado en la pasarela SMS.
Sustituye "NNNNN" por el número de teléfono al que deseas enviar el mensaje SMS.
Puedes usar el formato de número de teléfono local o formatos de número de teléfono
internacional (los números de teléfono en formato internacional siempre comienzan con un signo '+'). Si se usa el formato internacional,
ten en cuenta que debes sustituir '%2B' por el carácter '+', debido a las reglas de codificación de URL.
Sustituye "MMMMM" por el tipo de mensaje. El tipo de mensaje "SMS:TEXT" debe usarse para
mensajes de texto.
Los datos del mensaje contienen el mensaje que deseas enviar. Coloca los datos del mensaje en lugar de "DDDDD". Los datos del mensaje deben
usar caracteres UTF-8 y deben estar
codificados en URL.
También se pueden añadir otros parámetros a la solicitud.
Para una lista completa de los parámetros disponibles, consulta la tabla 'Parámetros de solicitud' a continuación:
Ejemplo de solicitud URL
https://127.0.0.1:9508/api?action=sendmessage&username=admin&password=abc123&
recipient=06203105366&messagetype=SMS:TEXT&messagedata=Hello+World
Ejemplo de respuesta
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: 246 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE smsapi PUBLIC "-//OZEKI//DTD XML 1.0//EN" "http://www.ozekisms.com/DTD/smsapi.xml"> <response> <action>sendmessage</action> <data> <acceptreport> <statuscode>0</statuscode> <statusmessage>Mensaje aceptado para entrega</statusmessage> <messageid>ERFAV23D</messageid> <recipient>06203105366</recipient> </acceptreport> </data> </response>
Parámetros de solicitud HTTP
Parámetro | Descripción | Valores posibles | Ejemplo | Obligatorio/Opcional* |
action | Especifica el comando de la API HTTP | sendmessage | action=sendmessage | Obligatorio |
username | Especifica el nombre de usuario. Los parámetros de nombre de usuario y contraseña se utilizan para autenticar al usuario. Cuando envías un mensaje, se enviará en nombre del usuario autenticado. El valor debe estar codificado en URL. | valor de cadena, longitud máxima de 16 caracteres | username=admin | Obligatorio |
password | Especifica la contraseña. Los parámetros de nombre de usuario y contraseña se utilizan para autenticar al usuario. Cuando envías un mensaje, se enviará en nombre del usuario autenticado. El valor debe estar codificado en URL. | valor de cadena, longitud máxima de 16 caracteres | password=abc123 | Obligatorio |
originator | Especifica la dirección del remitente. Esta información se mostrará en el teléfono móvil que reciba el mensaje. Esta es la dirección del remitente. Puede ser un número de teléfono, un código corto o una dirección alfanumérica. El número de teléfono puede estar en formato local (ej. 06201234567) o en formato internacional (ej. +36201234567). Si usas una dirección alfanumérica (ej. ozeki), los caracteres deben estar codificados en UTF8 y el valor debe estar codificado en URL. | valor de cadena, longitud máxima de 16 caracteres | originator=%2B36201112222 | Opcional |
recipient | Especifica el número de teléfono del destinatario.
El mensaje se enviará a este número de teléfono. El número de teléfono
puede especificarse en formato local (ej. 06201234567) o en
formato internacional (ej. +36201234567). Se pueden separar varias direcciones de destinatario con dos puntos (ej.: +36201234567,+36202222222) o punto y coma. El valor debe estar codificado en URL. |
valor de cadena, longitud máxima de 16 caracteres | recipient=%2B36201234567 | Obligatorio |
messagetype | Especifica el tipo de mensaje.
El tipo de datos del mensaje SMS basado en la
Especificación de Tipo de Mensaje Móvil.
Para mensajes de texto, los datos del mensaje serán texto plano; para otros tipos de mensajes,
será un documento XML.
|
SMS:TEXT SMS:WAPPUSH ... Los valores posibles se pueden encontrar en la Especificación de Tipo de Mensaje Móvil |
messagetype=SMS:TEXT | Opcional |
messagedata | Especifica el texto o los datos del mensaje SMS. El valor debe estar codificado en UTF8 y debe estar codificado en URL. | valor de cadena, longitud máxima de 32768 caracteres | messagedata=Hello+World | Obligatorio |
_charset_ | Especifica el conjunto de caracteres de los datos codificados (si no se especifica, se asumirá utf-8).
Los navegadores más recientes deberían establecer el valor de _charset_ automáticamente. Si tu
navegador no soporta esta función, puedes configurarlo manualmente como: |
utf-8 windows-1250 iso-8859-1 iso-8859-2 ... (Valores de conjuntos de caracteres soportados) |
_charset_=iso-8859-2 | Opcional |
serviceprovider | Especifica el nombre del módem GSM o la conexión del proveedor de servicios SMS IP
que se utilizará para enviar el mensaje.
Más información sobre la selección de conexión del proveedor de servicios está
disponible en
el API HTTP SMS - guía de enrutamiento SMS.
El valor debe coincidir con la cadena especificada en el formulario de configuración de la conexión del proveedor de servicios. |
valor de cadena, longitud máxima de 16 caracteres | serviceprovider=Vodafone | Opcional |
sendondate | Especifica la fecha y hora en que se debe enviar el mensaje.
El valor debe usar el siguiente formato de fecha: YYYY-MM-DD hh:mm:ss. El valor debe estar codificado en URL |
valor de fecha en formato YYYY-MM-DD hh:mm:ss | sendondate=2018-12-12+10%3A07%3A05 | Opcional |
responseformat | Después de que la pasarela envíe el mensaje SMS, la pasarela devolverá una página web indicando que el mensaje se ha enviado correctamente. El contenido de la página web se formatea según el parámetro responseformat. Puedes tener una respuesta de texto HTML para que sea fácil de leer para humanos o puedes tener formato XML para que sea fácil de procesar para software. |
xml (predeterminado) html urlencoded |
responseformat=xml | Opcional |
continueurl | Después de que la pasarela envíe el mensaje SMS, la pasarela devolverá una
página web indicando que el mensaje se ha enviado correctamente. El
contenido
de la página web se formatea según el parámetro responseformat.
Si el parámetro responseformat está configurado como html, la página web
puede contener un enlace "Continuar". Si especificas la URL en este parámetro,
se mostrará el enlace continuar y apuntará a la URL especificada.
El valor de la URL debe estar codificado en URL.
La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado. Más información sobre las palabras clave posibles se puede encontrar en la guía "Palabras clave de URL de envío". |
valor de cadena, longitud máxima de 1024 caracteres | continueurl=192.168.1.23 o continueurl=http%3A%2F%2Fwww.ozekisms. com%2Findex.php%3Fowpn%3D159 Nota: el segundo ejemplo contiene una URL codificada en URL. |
Opcional |
redirecturl | Después de que la pasarela envíe el mensaje SMS, por defecto la pasarela
devolverá una página web indicando que el mensaje se ha enviado correctamente. Opcionalmente puedes pedir a la pasarela que
redirija automáticamente el navegador a una URL que especifiques. Si especificas una URL en
el parámetro redirect, la respuesta HTTP devuelta
por la pasarela SMS contendrá una URL de redirección en el encabezado HTTP. Esto
indicará al navegador web que siga el enlace que has especificado. El
valor de la URL debe estar
codificado en URL.
La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado. Más información sobre las palabras clave posibles se puede encontrar en la guía "Palabras clave de URL de envío". |
valor de cadena, longitud máxima de 1024 caracteres | redirecturl=192.168.1.23 o redirecturl=http%3A%2F%2F192.168.1.23 %2Findex.php%3Fowpn%3D159 Nota: el segundo ejemplo contiene una URL codificada en URL. |
Opcional |
reporturl | Puedes configurar una página web para procesar información sobre eventos "entregado a la red" y "entregado al dispositivo". Si
especificas una URL en el parámetro reporturl, tu página web será
llamada cuando ocurran estos eventos. El valor de la URL que especifiques en
el parámetro reporturl debe estar
codificado en URL.
La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado. Un buen ejemplo de cómo usar la opción de URL de informe se puede encontrar en la guía cómo enviar un SMS programado y usar la funcionalidad reporturl. |
valor de cadena, longitud máxima de 1024 caracteres | reporturl=http%3A%2F%2Fwww.ozekisms. com%2Fproc.php%3Freporttype%3D%24reporttype %26messageid%3D%24messageid Nota: esta es la versión codificada en URL de la siguiente URL. Antes de que esta URL sea llamada por la pasarela SMS, los parámetros $reporttype y $messageid se reemplazarán por los valores apropiados: http://192.168.1.23/proc.php?reporttype=$reporttype& messageid=$messageid se llamará como: http://192.168.1.23/proc.php?reporttype=deliveredtonetwork& messageid=ERFAV23D La lista de palabras clave que puedes usar en reporturl son: $reporttype $messageid $statuscode $statusmessage $fromstation $fromconnection $fromaddress $tostation $toconnection $toaddress $text $createdate $submitdate $receiveddate |
Opcional |
messagecount | Especifica el número exacto de mensajes que deseas enviar. Si se establece, se necesita indexación para los parámetros 'recipient', 'messagetype' y 'messagedata'. El tutorial detallado sobre 'messagecount' se puede encontrar aquí. | número (valor predeterminado: 1) |
messagecount=6 | Opcional |
maxresponse | Este número especifica el máximo de mensajes sobre los cuales recibirás retroalimentación. Si excedes este número, tus mensajes se enviarán, pero no recibirás retroalimentación sobre ellos. Por defecto, este parámetro está configurado en 500 mensajes. | número | maxresponse=1000 | Opcional |
vp | Especifica el período de validez para tu mensaje.
El valor debe usar el siguiente formato de fecha: YYYY.MM.DD hh:mm:ss. El valor debe estar codificado en URL. Lee este tutorial para más información. |
valor de fecha en formato YYYY.MM.DD hh:mm:ss | vp=2019.01.28.+10%3A07%3A05 | Opcional |
* Obligatorio = Parámetro obligatorio, Opcional = Parámetro opcional
Parámetros de respuesta
(formato de respuesta xml)
Parámetro | Descripción | Valores posibles | Ejemplo |
acceptreport | Contiene la respuesta para la solicitud de envío para una única dirección de destinatario. Si se especifican varios destinatarios, se incluirá un acceptreport en la respuesta para cada destinatario. El orden de los acceptreports coincidirá con el orden de las direcciones de destinatario. | <acceptreport> <statuscode>0</statuscode> <statusmessage>Mensaje aceptado para entrega</statusmessage> <messageid>ERFAV23D</messageid> <recipient>06203105366</recipient> </acceptreport> |
|
acceptreport.statuscode | Contiene un valor entero para indicar éxito o fallo. Si el valor es 0, significa que el mensaje fue aceptado para entrega. Si el valor es mayor que 0, significa que hubo un error y el mensaje no fue aceptado para entrega. | Valor entero, mayor o igual a 0. Menor que 32768. | <statuscode>0</statuscode> |
acceptreport.statusmessage | Contiene una representación textual del código de estado. Si el mensaje fue aceptado, el valor será "Mensaje aceptado para entrega". Si el mensaje no fue aceptado para entrega, puedes encontrar el mensaje de error en este campo. | valor de cadena, longitud máxima de 1024 caracteres | <statusmessage>Mensaje aceptado para entrega</statusmessage> |
acceptreport.messageid | Contiene una referencia de mensaje que puede usarse para rastrear el mensaje en la pasarela SMS. Esta referencia de mensaje también se usa para identificar informes de entregado a la red y entregado al dispositivo o para consultar información sobre el mensaje. | valor de cadena, longitud máxima de 16 caracteres | <messageid>ERFAV23D</messageid> |
acceptreport.recipient | Contiene la dirección del destinatario. | valor de cadena, longitud máxima de 16 caracteres | <recipient>06203105366</recipient> |
Resumen
Este artículo trataba sobre la acción 'sendmessage' de la API HTTP. Con esta acción, puedes enviar mensajes SMS de texto y muchos otros tipos de mensajes a cualquier destinatario a través de la Pasarela SMS Ozeki. Has visto ejemplos de respuestas y algunas solicitudes HTTP más con descripción, valores posibles y ejemplos.
Si deseas saber más sobre el estado de entrega de tus mensajes, no dudes en hacer clic en la página sobre estados de entrega de SMS. Si deseas obtener una plantilla de URL, visita la página correspondiente.
Si deseas utilizar esta solución en situaciones reales, descarga la Pasarela SMS Ozeki y comienza a usarla ahora mismo!
More information
- Crear una cuenta de usuario de API HTTP SMS
- Compatibilidad
- Enviar y recibir SMS a través de la API HTTP
- Ejemplo de envío de SMS con HTTP SMS API
- Ejemplo de recepción de SMS con HTTP SMS API
- Codificador de url para HTTP SMS API
- Top 10 de API de SMS para programadores
- Cómo enviar SMS sobre HTTPS
- Trabajos de SMS por lotes programados