Api Can';t在force.com应用程序的Flash builder中使用会话id登录

Api Can';t在force.com应用程序的Flash builder中使用会话id登录,api,soap,flex3,salesforce,visualforce,Api,Soap,Flex3,Salesforce,Visualforce,我有一个简单的Flexforce应用程序,我想把它嵌入VisualForce页面。我已经完成了教程中描述的所有操作,并对DE进行了测试,但我在SessionHeader:Invalize SESSION中找到了无效的会话ID。请看下面的代码,告诉我哪里错了 我的VF页面: <apex:page sidebar="false"> <apex:flash src="{!$Resource.bug2_swf}" width="100%" height="100%"

我有一个简单的Flexforce应用程序,我想把它嵌入VisualForce页面。我已经完成了教程中描述的所有操作,并对DE进行了测试,但我在SessionHeader:Invalize SESSION中找到了无效的会话ID。请看下面的代码,告诉我哪里错了

我的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>

我的MXML文件



问题出在您传递给Flex的会话中

{!$Api.Session\u ID}返回Visualforce会话,但{!$Api.Partner\u Server\u URL\u 200}指向“salesforce”域。您需要获得如下“salesforce”课程:

并且在控制器/扩展中具有如下属性:

公共字符串SessionId{ 获取{ 返回UserInfo.getSessionId(); }
}

哇!非常感谢你!它起作用了。我真的应该在这里发布我的问题,而不是在SF partner portal中创建案例:)。
<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);
        }