説明:
OAuth サービスが「ランダムに」「有効期限」の値を返さないという問題があります。
アプリケーションは、単純な WebRequests とリダイレクト (SDK なし) でサーバー側認証を使用し、ドキュメントに完全に準拠しています。
「有効期限」の値を独自のデータベースに保存し、この情報を使用して、アクセストークンの有効期限が切れた (または間もなく期限切れになる) ときに、ユーザーに再認証を求めるプロンプトを表示します。
アクセストークンの更新を自動化または一括処理することはありません。Accesstokens は、サーバー側の認証によってのみ更新されます。つまり、プロセスは常にユーザーによって開始されます。
このように期限切れのトークンの一部 (すべてではない) を更新しようとすると、OAuth サービスは手順 4 の有効期限の値を返さないことに気付きました。彼の Facebook アカウントにアクセスします。accesstoken は問題なく返されます。
他のトークンはこの問題に直面しません。この問題はランダムに発生するようですが、manage_pages パーミッションを付与するユーザーと付与しないユーザーに関連している可能性があります。ただし、これは憶測であり、現在これをテストすることはできません。
この問題は、ユーザーが手動でアプリの設定に移動し、そこからアプリを削除することで「修正」できます。次にサーバー側の認証が実行されると、OAuth 応答には期待どおりの有効期限の値が含まれ、そのユーザーを承認するための後続の呼び出しにも含まれます。
質問:
- この (文書化されていない) 動作の原因は何ですか?
- 影響を受けたトークンを修正するにはどうすればよいですか?
- どうすればこれを防ぐことができますか?
前もって感謝します、