2010-12-28 1 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"도메인을 가리 킵니다.

이 같은 컨트롤러/확장의 속성이 있습니다 : 당신은이 같은 "세일즈 포스"세션을 얻을 필요가

공공 문자열 세션 ID { 의 get { 반환 UserInfo.getSessionId() ; } }

+0

와우! 고마워요! 그것은 작동합니다. SF 파트너 포털에서 사례를 만드는 대신 여기에 내 질문을 게시해야합니다. :) –

관련 문제