Api Can';t在force.com应用程序的Flash builder中使用会话id登录
我有一个简单的Flexforce应用程序,我想把它嵌入VisualForce页面。我已经完成了教程中描述的所有操作,并对DE进行了测试,但我在SessionHeader:Invalize SESSION中找到了无效的会话ID。请看下面的代码,告诉我哪里错了 我的VF页面: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%"
<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);
}