2011-10-19 8 views
2

ホームページアプリケーションでjavascriptアプリケーションを実行しています。 Webサービスが呼び出され、Salesforce APIが呼び出されます。私は再ログインを保存するためにAPI_Session_ID変数を使用したいと思います。これを私のホームページコンポーネントで実行されているjavascriptにどのように公開しますか?理想的にはapexを使用して小さなスクリプトをレンダリングし、API_Session_ID変数を持つjavascript変数をすべてのページに初期化したいと思いますが、これを行う方法はわかりません。salesforce - API_Session_IDをjavacriptで利用できるようにする方法

注 - アプリケーションがホームページコンポーネントで実行されているため、VFを使用することはできません。私はiframeから行うことができないメインページのJavaScriptオブジェクトにアクセスする必要があるので、そのための通常のソリューション(iframeでVFとして実行)は利用できません。

答えて

3

[OK]をので、私はこれを考え出しました。セッションクッキーには「sid」という値があります。これは少し調整するだけで必要なものです。あなたがどのように知っているとき簡単!

http://forums.sforce.com/t5/forums/forumtopicprintpage/board-id/general_development/message-id/7209/print-single-message/false/page/1

それは少し古くなってい:ここにリンクがあります。私は、cookieのsid値とwindow.location.hostを私のPHP Webサービスに渡します。これらの値を動作させるPHPは次のとおりです:

$sidparts = explode("!", $feed->sid['value']); 
$location = "https://".parse_url($feed->server['value'], 
    PHP_URL_HOST)."/services/Soap/u/20.0/".$sidparts[0]; 
$sessionId = "{$feed->sid['value']}"; 
1

私は同じことを何度もやろうとしました。残念ながら、私はVisualForceなしで成功していません。

私は2,3日前にトピックにディスカッションスレッドを見つけました。 http://boards.developerforce.com/t5/AJAX-Toolkit-S-Controls/Detect-current-user-with-AJAX-toolkit/m-p/277241#M8485

はまた、それはのVisualforceを使用して、セッションIDを取得するためにあなたがこれを知っているように聞こえるが、:

<script type="text/javascript"> 
    var __sfdcSessionId = '{!GETSESSIONID()}'; 
</script> 
+0

ヘイMatthew - ありがとうございました。私は実際にそれを理解しており、これはあなたにとって有用かもしれません:http://forums.sforce.com/t5/forums/forumtopicprintpage/board-id/general_development/message-id/7209/print-single-message/false/ページ/ 1 - SAが私に許可したらすぐに、私は自分の質問にもっと完全に答えます。 – FatalFlaw

+0

ニースが見つかりました!クッキーをつかむことは創造的な解決策です。 –

+0

VisualForceページで使用されるforce.comドメインのsidクッキー内のセッションIDは、APIで使用するために無効です。したがって、{!GETSESSIONID()}を使用する必要があります。私はそれをajaxライブラリと一緒にユーザスクリプト内から使用しようとしていました:http://bit.ly/POfbrW –