force.comアプリケーション用のフラッシュビルダーのセッションIDでログインできません
-
13-10-2019 - |
質問
力散布用のSimple Flexがあり、VisualForceページに埋め込みたいと考えています。チュートリアルで説明されているようにすべてを実行し、DEに対してテストしましたが、invalid_session_id:sessionheader:違法セッションで見つかった無効なセッション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ファイル
<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);
}
解決
問題は、屈するために合格しているセッションです。
{!$ api.session_id} visualforceセッションを返しますが、{!$ api.partner_server_url_200}は「salesforce」ドメインを指します。このような「Salesforce」セッションを取得する必要があります。
そして、このようなコントローラー/拡張機能にプロパティを持っています:
public string sessionid {get {return userinfo.getSessionId(); }}
所属していません StackOverflow