Interfaz HTTP de AUTO ENVIO de WAP-PUSH
De Open movilforum wiki
Tabla de contenidos |
[editar] Introducción
Para utilizar correctamente el servicio de envío de wappush al móvil el usuario tiene que realizar 2 pasos destacados:
- 1) Paso de Alta: paso que el usuario deberá darse de alta en el servicio enviando un SMS con el formato ALTA AUTOWAP [CLAVE] al número 638444900.
- 2) Paso de envío Wap Push a su propio móvil: El usuario deberá de realizar una petición http por método POST como se muestra varios ejemplos en los siguientes apartados.
Nota 1: La clave ha de tener entre 6 y 8 caracteres.
Nota 2: Esta primera versión es una beta y por lo tanto los datos no son enviados de forma segura utilizando https.
[editar] URL del servicio
A continuación se describe la interfaz http de envío de wap-Push. Para utilizar esta interfaz, las aplicaciones deberán realizar una petición http a:
http://open.movilforum.com/apis/autowap
[editar] Formato de la llamada
Esta petición deberá cumplir los siguientes requisitos:
- Realizada por el método POST.
- Ser del tipo application/x-www-form-urlencoded:
- Contener los siguientes parámetros:
** TME_USER = Corresponde con el msisdn del usuario ** TME_PASS = Clave asociada del usuario ** WAP_Push_URL = Indica la URL del mensaje. ** WAP_Push_Text = Indica el texto que será visible por el mensaje en el Wap Push.
Nota 1: La clave del remitente se obtiene enviando un mensaje de texto al 638444900 cuyo texto sea “ALTA AUTOWAP clave_que_desee”.
[editar] Respuestas
Si el envío se ha realizado correctamente la aplicación recibirá un OK en la respuesta http. En caso contrario, recibirá un código y un texto de error. A continuación se define la lista de errores posibles:
- 0 – OK. No se ha producido ningún error.
- 1 - El formato del usuario es incorrecto. Por favor vuelve a introducirlo.
- 2 - La URL introducida no es válida.
- 3 – El formato de la clave es incorrecto. Por favor, vuelve a introducirla teniendo en cuenta que debe tener 8 dígitos.
- 4 - El usuario tiene el acceso denegado.
- 5 – El usuario no está dado de alta.
- 6 – La contraseña introducida no es válida.
- 7 – El usuario tiene el alta caducada.
- 8– El formato del texto es incorrecto. Por favor, vuelve a introducirla teniendo en cuenta que no puede superar los 160 caracteres.
- 9 – No se ha podido establecer la comunicación.
- -1- Error en la petición POST, por falta de parámetros o nombres incorrectos.
[editar] Ejemplos
[editar] Ejemplo de petición de envío
A continuación se puede ver un ejemplo de la petición de envío:
POST /wappush_movilforum/ServletLoginMF HTTP/1.1 Host: 172.16.120.251 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png, /*;q=0.5 Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 87
TME_USER=609xyzxyz&TME_PASS=abcdef&WAP_Push_URL=http://wap.movistar.com/descargas?ID=2&WAP_Push_Text =mensaje de prueba
[editar] Ejemplo simple en HTML
<html>
<title>Ejemplo openwappush</title> <body>
<form action= 'http://open.movilforum.com/apis/autowap' method='POST'>
<input type='hidden' name='TM_ACTION' value='AUTHENTICATE'>
Mi Movil: <input type='text' name= 'TME_USER'>
Password: <input type='password' name='TME_PASS' size=20> (Envía 'ALTA autowap clave' al 638444900)
Url: <input type='text' name='WAP_Push_URL' size=40>
Texto: <input type='text' name='WAP_Push_Text' size=70>
<input type='submit' value='Enviar'>
</form>
</body>
</html>
[editar] Ejemplo en Perl usando un POST
Ejemplo usando comando POST (incluído en perl):
echo """ TME_USER=6NNNNNNNN&TME_PASS=XXXXXX&WAP_Push_URL=MMMMMMMMM&WAP_Push_Text=mensaje+de+prueba
""" | POST -U http://open.movilforum.com/apis/autowap
[editar] Ejemplo en Python
def send_wappush(number, text, login="NNNNNNNNN", password="NNNNNN"):
"""Envio de mensajes wappush usando la pasarela de movistar
"""
import urllib
url = "http://open.movilforum.com/apis/autowap"
form = dict(TME_USER=6NNNNNNNN,
TME_PASS=XXXXXX, WAP_Push_URL=MMMMMMMMM, WAP_Push_Text=text,
submit='Enviar')
data = urllib.urlencode(form)
f = urllib.urlopen(url, data=data)
res = f.read()
if res != 'OK':
raise ValueError(res.strip())
return res
[editar] Ejemplo en Ruby
Definiremos una clase para hacer el código más reutilizable:
require 'net/http' require 'uri' class MovistarGateway URL ='http://open.movilforum.com/apis/autowap def initialize(login, password) @login = login.to_s @password = password.to_s end def send(destinations, message,url) numbers = destinations.find_all do |destination| destination =~ /\d+/ end.join(';') return if numbers.blank? response = Net::HTTP.post_form(URI.parse(URL), { 'TME_USER'=> @6NNNNNNNN,
'TME_PASS'=> @XXXXXX, 'WAP_Push_URL'=> url, 'WAP_Push_Text'=> message
}
)
raise "SMS could not be sent: #{response.body}" unless response.body =~ /OK/
end
end
Así pues, para enviar el mensaje, en este caso al móvil 677777777:
gateway = MovistarGateway.new('<login>', '<password>')
gateway.send(['677777777'], 'Texto del mensaje', ‘http://wap.movistar.com/descargas?ID=2’)
[editar] Ejemplo en PHP
<?php // Funcion que envia el mensaje wappush
function send_wappush($tm_login, $tm_password, $tm_href, $tm_mensaje) {
- variables post
$host="open.movilforum.com"; $service_uri="/apis/autowap"; $vars="TME_USER=".$tm_login."&TME_PASS=".$tm_password."& WAP_Push_URL=".$ tm_href."& WAP_Push_Text=".$tm_mensaje;
- cabecera http HTTP
$header = "Host: $host\r\n"; $header .= "User-Agent: PHP Script\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: ".strlen($vars)."\r\n"; $header .= "Connection: close\r\n\r\n";
$fp = pfsockopen($host, 443, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)\n"; echo $fp;
} else {
fputs($fp, "POST $service_uri HTTP/1.1\r\n");
fputs($fp, $header.$vars);
fwrite($fp, $out);
# muestra la salida (opcional)
# while (!feof($fp)) {
# echo fgets($fp, 128);
# }
fclose($fp); } }
?>
Llamada a la función para enviar un wappush:
<?
send_wappush ("666555444", "miclave", " http://wap.movistar.com/
descargas?ID=2" , "Funcion que envia un wappush");
?>
