1

新しいOAuth2.0クライアント側フローは、expiresIn時間のあるアクセストークンを提供します。通常、これは1〜2時間です。ゲームをプレイしているユーザーは、その長いプレイを費やす可能性があり、しばらくプレイして離れて、3〜4時間後に戻ってくる可能性もあります。

ドキュメントからわかることから、API呼び出しからのエラーを処理することになっているだけで、トークンが機能しない場合は、ブラウザーをリロードします。まあ、これは重要な瞬間に起こるかもしれないので、これはゲームにとってはそれほど素晴らしいことではありません。

タイマーを設定してFB.getLoginStatus()を再度呼び出しても、expiresInは同じままなので、明らかに最初のログイン時間に関連しています。

ゲームは、すべてのFacebook API呼び出しを事前に行い、すべてのデータをキャッシュすることになっていますか?Webページをリロードせずにaccess_tokenを更新する方法はありますか?

4

1 に答える 1

2

私はいくつかの実験を行いましたが、setTimeout()を呼び出して、元のgetLoginStatus呼び出しからexpiresIn値を渡すことができます。その後、getLoginStatusを再度呼び出すとタイムアウトになると、新しいアクセストークンと新しいexpiresIn時間で更新されます。すすぎ、繰り返します。

于 2011-10-14T07:47:29.560 に答える