Comunidad de diseño web y desarrollo en internet online

Proyecto Flex - Envio SMS (Movistar) Incluyo Código

Citar            
MensajeEscrito el 05 Ago 2010 11:18 am
Muy buenas:

Estoy desarrollando una pequeña aplicación para poder enviar SMS desde un entorno Flex. Lo tengo bastante avanzado, pero hay un detalle que no consigo solventar.

Todo mi trabajo está basado en las APIS de Movistar que se encuentran en el portal: --> Portal

Más concretamente, estoy usando un HTTPService para adaptar la version HTTP publicada en dicha Web: --> Enviar SMS HTTP

Mi aplicación, sólo funciona si antes, me he logeado en la web de Movistar para enviar SMS : --> Mensajería Web con algunos de los teléfonos que tengo ya registrados en el servicio. Si desconecto mi sesión en esta web, deja de funcionar la versión Flex.

Supongo que hay algo que me estoy saltando y que desconozco que puede ser. ¿Algo de seguridad? ¿https?, firmas digitales. La verdad es que no lo entiendo. La version HTTP publicada en la web anterior, es muy simple y funciona siempre.

Este es mi código al completo (eliminando los teléfonos y claves evidentemente)

Código Flex :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   
   <mx:Script>
      
         import flash.display.Sprite;
         import flash.net.URLRequest;
         import flash.net.URLVariables;
         import flash.net.navigateToURL;
         import flash.system.Security;
         import mx.controls.Text;
         import mx.rpc.events.ResultEvent;
         
      
         [Bindable] public var password:String="contraseña";
         [Bindable] public var dir:String = "https://opensms.movistar.es/aplicacionpost/loginEnvio.jsp";  
         [Bindable] public var hoy:Date=new Date();
         [Bindable] private var pet:URLRequest = new URLRequest(dir); 
         
         
         private function mandarDatos(): void {    
         loginSrv.send();
            } 
         
         private function cargardatos():void{
         loginSrv.lastResult;
         //navigateToURL(pet,"_self");
         }
            
   </mx:Script>
   
   <mx:HTTPService id="loginSrv" url="{dir}" 
               method="POST" contentType="application/x-www-form-urlencoded"
                   useProxy="false" showBusyCursor="true" resultFormat="text" 
               result="cargardatos()" >
      
        <mx:request>
            <TM_ACTION>{"AUTHENTICATE"}</TM_ACTION>
            <TM_PASSWORD>{password}</TM_PASSWORD>
            <TM_LOGIN>{Telefono.selectedItem.data}</TM_LOGIN>
            <to>{destinatarios.text}</to>
            <message>{sms_text.text}</message>
        </mx:request>
    </mx:HTTPService>
         
   
   <mx:Panel x="30" y="31" width="372" height="405" layout="absolute">
      <mx:Label x="10" y="31" text="Selecciona teléfono" width="153"/>
      <mx:ComboBox id="Telefono" x="12" y="60">
             <mx:ArrayCollection>
             <mx:Object label="Teléfono 1" data="666333999"/>
            <mx:Object label="Teléfono 2" data="666333222"/>
             <mx:Object label="Teléfono 3" data="666222111"/>
             </mx:ArrayCollection>
         </mx:ComboBox>
      <mx:Label x="10" y="88" text="Destinatario" width="101"/>
      <mx:TextArea height="20" id="destinatarios" text="666555444" x="11" y="117"/>
      <mx:Label x="10" y="145" text="Texto SMS" width="88"/>
      <mx:TextArea id="sms_text" width="313" maxChars="160" height="79" text="Pruebas desde Flex enviando SMS." x="10" y="174"/>
      <mx:Button label="Enviar" id="enviar" click="mandarDatos()" x="10" y="261"/>
   </mx:Panel>
    
</mx:Application>


Muchas gracias y un saludo.

Por mingole

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ago 2010 11:38 am
¿Cual es el problema? ¿Que no te deja enviar SMS si no tienes una sesión válida?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Ago 2010 11:41 am
Hola Jorge:

Muchas gracias por tan rápida respuesta.

No me deja enviar SMS si antes en el mismo navegador en que estoy probando la aplicación, no me he logueado en la web de EnviaMensajes de Movistar. Es algo muy curioso la verdad...

Sólo envía el sms estando logueado y con la sesión activa.

Un saludo

Por mingole

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ago 2010 02:18 pm
No es curioso, una sesion validada es requerida por la mayoría de los servicios, lo que tienes que buscar en el API de Movistar es como logearte desde tu página (sin ir a la página de Movistar, claro)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2010 07:16 am
Gracias de nuevo Jorge:

En el ejemplo HTML que viene en la web, no incluye ningún proceso de validación y siempre funciona. ¿esto es así por alguna cuestión que desconozco?

Realmente en el portal, no dice nada de mantener la sesión validada, ya que en el mismo POST, se le envian el login, pass y con eso debería funcionar.

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:
TM_ACTION = AUTHENTICATE
TM_LOGIN = número de teléfono del remitente del SMS
TM_PASSWORD = Clave del remitente
to = destinatario(s) del SMS. En caso de varios destinatarios utilizar el separador “;”. Para especificar el prefijo del país se debe poner antes 00, por ejemplo 00346xxxxxxxx.
message = texto del SMS.



Te adjunto el código HTML (este funciona siempre)

Código HTML :

<html>
  <title>Ejemplo opensms</title>
  <body>
    <form action='https://opensms.movistar.es/aplicacionpost/loginEnvio.jsp' method='POST'>
      <input type='hidden' name='TM_ACTION' value='AUTHENTICATE'>
      Mi Movil: <input type='text' name='TM_LOGIN'>
      Password: <input type='password' name='TM_PASSWORD'size=20> (Envia 'miclave' al 770)
      Destinos: <input type='text' name='to'size=40>
      Texto: <input type='text' name='message' size=80>
      <input type='submit' value='Enviar'>
    </form>
  </body>
</html>


¿Alguna otra idea?

Muchas gracias.

Por mingole

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2010 01:37 pm
Si estás incluyendo todos esos datos en el POST que hacés desde el Flash, en principio está bien. El tema es que los credenciales de una sesión autenticada los envía el mismo navegador. Seguramente tienen un foro de desarrollo, algún tipo de soporte donde podés consultar, yo nunca he usado ese servicio, pero si otros similares y obtenía un token previamente que tenía que agregar al paquete

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ago 2010 09:08 am
Gracias de nuevo Jorge.

En los foros de desarrollo de Movistar no indican nada de token, ni de mantener la sesión autenticada. Simplemente registras tu teléfono móvil enviando un sms con la contraseña deseada y te lo confirman via sms también. A partir de ese momento ya puedes usar el servicio.

Yo para comprobar que todos los datos se envian correctamente, me he creado una web .asp (IIS) donde recojo los mismos datos que envío a https://opensms.movistar.es/aplicacionpost/loginEnvio.jsp y en principio esa parte está correcta.

Sigo con la idea de tener este pequeño módulo funcionando porque creo que puede ser de ayuda también para los demás desarrolladores, pero aún no doy con la solución.

Un saludo.

Por mingole

10 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.