1

Web サイトに Facebook/Twitter/... 機能との接続を実装しています。ユーザーが自分のアカウントを外部サービスに接続すると、当社の Web サイトがユーザーに代わってメッセージを投稿できるという考えです。

Twitter では OAuth access_token の有効期限がないので問題ありません。しかし、FB では、ユーザーがログアウトしたり、パスワードを変更したり、明示的にアプリの認証を解除したりすると、2 か月ごとに有効期限が切れます。

トークンの有効期限はどのように処理すればよいですか? 私にとっては、ユーザーを煩わすことなくトークンを自動的に更新できれば理想的ですが、何かを見逃していない限り、これを行う方法はないようです。だから、今私は2つのアイデアを持っています:

  • あまり良くない方法: ユーザーが Web サイトにログインするたびに、トークンの有効期限が切れているかどうかを確認し、アプリを再承認しすぎていることをユーザーに通知します。
  • より適切な方法: Web サイトで「ソーシャル ネットワークへの投稿」イベントがトリガーされるたびに、トークンの有効期限が切れているかどうかを確認し、ユーザーに再認証を依頼します。

最初のオプションは、実装が簡単で、ユーザーにとってよりクリーンです。

では、このような状況をどのように処理していますか?

ありがとう!

4

2 に答える 2

0

ユーザーが実際にあなたの Web サイトを操作している場合、新鮮な情報が得られるはずですaccess_token(以下をお読みください)。Facebook API を使用してユーザーに関連するオフラインタスクを実行する場合は、access_tokenとその有効期限を保存する必要があります。次に、期限切れのアクセス トークンを処理し、ユーザーにアプリを再度操作してレコードを更新するように依頼する必要があります。

このドキュメントを参照してください。また、 Extending Access Tokens ドキュメントを読んでいる必要があります。

ステップ 2. 有効期間の長いユーザー アクセス トークンを更新する

いつでも、元の認証フローを繰り返し、新しい短期トークンを取得してから、上記と同じ交換を実行することで、新しい長期トークンを生成できます。場合によっては、この新しい長期間有効なトークンが以前のトークンと同一になることがありますが、これが正しいことを保証するものではなく、アプリがそれに依存するべきではありません。

于 2012-11-08T14:17:09.513 に答える
0

最初のオプションを試すと思います:

  • ユーザーのログイン
  • サーバーは、ユーザーがすでに Facebook トークンを持っているかどうかを確認します。
  • それがまだ有効なトークンであるかどうかを確認してください。http://developers.facebook.com/docs/howtos/login/debugging-access-tokens/
  • トークンの有効期限が切れた場合は、ユーザーがアプリの認証を解除したためではなく、他のケースではユーザーを OAuth エンドポイントにリダイレクトするためです。

試してみて、他にもあればこの回答を更新します。

于 2012-11-08T11:27:52.327 に答える