No se puede iniciar sesión con el ID de sesión en el constructor de destello para la aplicación force.com

StackOverflow https://stackoverflow.com/questions/4545396

Pregunta

Tengo sencilla Flex para la aplicación de la fuerza y ??quiero incrustarlo en la página Visualforce. He hecho todo lo que se describe en tutoriales y probado contra DE, pero me da INVALID_SESSION_ID: Identificador de sesión no válida encuentra en SessionHeader: Sesión ilegal. Por favor, vea el código abajo y dime dónde estoy equivocado ...

Mi página VF:

<apex:page sidebar="false">
    <apex:flash src="{!$Resource.bug2_swf}" width="100%" height="100%"
                flashvars="session_id={!$Api.Session_ID}&server_url={!$Api.Partner_Server_URL_200}"/>
</apex:page>

Mi archivo MXML

<fx:Declarations>
    <s:TraceTarget includeCategory="true"
                   includeLevel="true"
                   includeTime="true"
                   level="{LogEventLevel.INFO}"
                   filters="{['com.salesforce.*']}"/>

    <flexforforce:F3WebApplication id="app"
                                   statusChanged="statusChangedHandler(event)"
                                   loginComplete="loginCompleteHandler(event)"
                                   loginFailed="loginFailedHandler(event)"
                                   sessionExpired="sessionExpiredHandler(event)"
                                   />
</fx:Declarations>

<fx:Script>
    <![CDATA[
        import com.salesforce.events.LoginFaultEvent;
        import com.salesforce.events.LoginResultEvent;
        import com.salesforce.events.SessionExpiredEvent;
        import com.salesforce.events.StatusChangedEvent;

        import mx.collections.ArrayCollection;
        import mx.controls.Alert;
        import mx.events.FlexEvent;
        import mx.logging.LogEventLevel;
        import mx.managers.CursorManager;
        import mx.rpc.Responder;

        private var _username : String;
        private var _password : String;

        [Bindable]
        private var _status : String = "";

        protected function onCreationComplete(event:FlexEvent):void
        {
            var obj:Object = this.parameters;

            trace(obj.session_id);
            trace(obj.server_url);

            app.serverUrl = obj.server_url;
            app.loginBySessionId(obj.session_id);
        } 
¿Fue útil?

Solución

El problema está en la sesión que está de paso a Flex.

{!} $ Api.Session_ID devuelve la sesión de Visualforce, pero {!} $ Api.Partner_Server_URL_200 puntos al dominio "fuerza de ventas". Que necesita para obtener la sesión de "fuerza de ventas" de esta manera:

y tiene una propiedad en su controlador / extensión de esta manera:

public String {SessionId obtener { volver UserInfo.getSessionId (); } }

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top