1

認証スキームにeveryauthを使用し、サーバーからFacebook APIにアクセスしようとしているnode.jsサーバーアプリを実行しています。ユーザーがログインしたら(Facebookモジュールを使用してeveryauthを介して)現在これを処理する方法は次のとおりです。

var oauth = everyauth.facebook.oauth;
oauth.get('https://api.facebook.com/method/fql.multiquery?format=json&queries=' + multiquery, req.session.auth.facebook.accessToken, function (err, data) { // do stuff here });

これは最初は機能しますが、数分後 (通常は約 10 分間非アクティブ状態)、Facebook API から期限切れのトークン応答を受け取り始めます。

Error validating access token: Session has expired at unix time...

いくつかのFacebook ドキュメントを読んだ後、ほとんどのアクセス トークンはデフォルトで 2 時間持続するように思われるため、API 呼び出しを正しい方法で形成していないかどうか疑問に思っています。どんな提案やアイデアも歓迎します、ありがとう!

編集:

もう少し情報を追加すると、エラー コールから返された UNIX の有効期限は、実際には現在の時刻よりも短くなります。なぜそんなに短いのかはわかりません。それまでの間、もう少しデバッグを行います...

4

1 に答える 1

0

FB 認証を要求するときに「offline_access」オプションをスコープに含めると、アクセス トークンが期限切れにならないことをご存知でしたか。

http://developers.facebook.com/docs/reference/api/permissions/#extended_perms

拡張アクセス許可が必要なため、これは理想的ではないかもしれませんが、回避策になる可能性があります。

于 2012-04-29T10:37:39.140 に答える