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.
