2

アプリケーションを一度ロードし、signed_request を受け取り、そこからユーザー トークンを取得すると、iframe 内のすべての遷移は内部リンクを使用して行われます (署名された要求はありません)。

対処しなければならないユースケースがいくつかあります。ユーザー アクセス トークンの有効期限が切れる直前:

  1. ユーザーが次のリンク (ajax ではない) をクリックし、get 要求を送信した
  2. ユーザーがフォームに入力し、投稿リクエストを送信しました
  3. ユーザーは、facebook にアクセスする必要があるサーバーに ajax リクエストを送信しました

Nr 1 は最も明白なケースです。トランザクションがないため、単純にユーザーを /authorize にリダイレクトできます。Nr3 は、サーバーからの特殊なエラーを解析して /authorize にリダイレクトするのと同じ方法で解決できます。

Nr2 は、非トランザクション mongodb を使用しているため、最も不快なケースです。したがって、私が見る唯一の解決策は、何かをする前に、/me? に対してアクセス トークンをチェックする必要があることです。無効な場合は、リクエスト ボディ全体をセッションに保存し、/authorize にリダイレクトしてから、もう一度リクエストを処理します。ただし、それが有効である場合、私の取引が成功するという保証はありませんが、私はこれで問題ありません.

ですから、本当の問題は、これらの状況にどのように対処するかということだと思います. トークンをどのように更新しますか? それらをどのように扱いますか?多分私は明らかな何かを見逃していますか?

どんなアイデアでも大歓迎です。ありがとう!

4

1 に答える 1

1

PHP SDK では、以下を呼び出すことができます。

$access_token = $facebook->getAccessToken();

JavaScript SDK では、以下を使用できます。

FB.getLoginStatus

必要なときにいつでも新しいアクセス トークンを取得できます。Graph Explorerを使用してトークンを確認します。トークンを取得する権限にも注意してください。

于 2012-06-26T05:20:37.713 に答える