1

私はFacebook APIを初めて使い慣れていて、ほとんどの仕事を行うためにJavascript SDKを使用しています。私はログインしています:Facebook APIアクセストークンサーバー側

FB.getLoginStatus(function (response) { 
    if (response.status === 'connected') { 
     document.location.href = '<%: ResolveUrl("~/Account") %>/AuthenticateFacebook?accessToken=' + encodeURI(response.authResponse.accessToken) + '&userID=' + encodeURI(response.authResponse.userID) + '&returnUrl=' + $('#returnUrl').val(); 
    } 
} 

これは、私の認証ページにログイン応答の結果を送信しています。これはうまくいきます。後で私がサーバでaccessTokenを使用したいときに私は立ち往生しています。

また、Facebook C# SDKを使用して基本的な処理を行っています。それはaccessTokenを必要とするので、私の質問はどうすればサーバー側からアクセスできますか、それともどこかに保存できますか?

このサイトは、下に基本的なASP.NETメンバーシップサービスを持つMVC3です。これに関する助言や指導は本当に感謝しています。

+1

回避をmemcachedをしますアクセス履歴トークンをブラウザの履歴に保存するような、access_tokenを持つURL – prabir

+0

@prabir、どうやってそれを渡すことをお勧めしますか?それをAJAXなどでPOSTしますか? HTTPS経由でそのトラフィックを実行する必要がありますか?また、SDKの素晴らしい仕事! –

+1

httpsまたはユーザーサーバー側のoauthフローを介してajaxを使用 – prabir

答えて

1

あなたがこれまでに持っているものは優れています。これは、C#SDK開発者があなたにそれをやりたがっていることです。

サーバー側に保存するには、セッションに保存することができます。アクセストークンは1時間ほど有効であることに注意してください。時には、クライアント側で新しいトークンを取得して、サーバー上のトークンをリフレッシュしたい場合があります。

あなたはより多くのちょうどセッションにそれをドロップするよりも、いくつかのオプションがあります。

  • セッション変数(前述のように)
  • アプリのキャッシュ
  • にリダイレクト
  • データベース
+0

OK、基本的に 'accessToken'を一時的なものとして扱いたいと思います。サーバー側で新しいものを取得する方法はありますか?さもなければ、私はサーバー側で新しいものを得るために多くのことをやり直すことになるでしょう。 –

+0

私のコメントに追加するにはhttp://csharpsdk.org/docs/web/handling-expired-access-tokens.htmlの「アクセストークンを更新する」セクションを参照してください。それはまさに私がやりたいことです。 –

+0

最後のコメントは無視してください。それは仕事に適切なツールを使用することの問題でした。基本的には、私はC $ SDKで引っ張っていた友人リストを持っていますが、これはaccessTokenを必要としました。 jQueryのAJAX呼び出しで 'JSON'経由でそのリストをプルし、現在のaccessTokenを渡すことができました。最後は非常に簡単です。正しい方法論を実現するのを手伝ってくれてありがとう。 –