2010-12-28 9 views
1

私は単純なForce for Flexアプリケーションを使用しており、Visualforceページに埋め込みたいと考えています。私はチュートリアルで説明したようにすべてを行い、DEに対してテストしましたが、INVALID_SESSION_IDが返されます。SessionHeaderで無効なセッションIDが見つかりました:不正なセッション。 ...force.comアプリケーション用のFlash Builderのセッション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); 
     } 

答えて

2

Flexに渡すセッション。

{!$ Api.Session_ID}はVisualforceセッションを返しますが、{!$ Api.Partner_Server_URL_200}は "salesforce"ドメインを示します。

と、このようなあなたのコントローラ/拡張でプロパティを持っている:あなたは、このような "Salesforceの" セッションを取得する必要があり

公共の文字列のSessionId { のget { リターンUserInfo.getSessionId() ; } }

+0

WOW!どうもありがとうございました!できます。 SFパートナーポータルでケースを作成するのではなく、ここに質問を投稿する必要があります:)。 –

関連する問題