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) {
  1. 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;

  1. 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");

?>