FB プラットフォームからしばらく離れてから FB アプリの構築に戻ってきましたが、古い offline_access 権限が削除され、有効期限が長いトークンに置き換えられていることがわかりました[1]。
そのため、外部アプリでのスケジュールやアクティビティなどに基づいてデータを Facebook にプッシュする必要がある外部アプリは、期限切れになったロング アクセス トークンに対処する必要があるようです。ユーザーが FB からログアウトすると有効期限の長いトークンも破棄されるようになったため、これはさらに苛立たしいものになりました[2]。
私はまだ解決策を検討している段階ですが、次の 2 つのアイデアが思い浮かびます。
1) 私のアプリが FB 統合を持つユーザーに連絡するたびに、FB で再認証をトリガーするリンクをクリックして、新しいロング アクセス トークンを取得するように求められます。私のユーザーは通常、ロング アクセス トークンの有効期間内に数回連絡を受けるため、必要な限りロング アクセス トークンを効果的に更新し続ける必要があります (アプリに煩わしい摩擦が追加されたとしても)。
2) 1) が常に機能することを保証できないため (たとえば、ユーザーがアプリの電子メール通知の再認証リンクをクリックしないか、Facebook からログアウトするため)、失敗した FB インタラクションも処理する必要があります。それらを保留キューに入れ、ユーザーに電子メールを送信して、ロングアクセストークンを再度付与するよう明示的に依頼します。クールではありませんが、他に選択肢はありません。X が許可を再付与するように依頼した後、彼らが要求に応答しない場合は、タスクをビンに入れ、アプリではなく FB の制限によるものであることを説明するメールを送信する必要があります。繰り返しますが、クールではありません。
認証/明示的なアクセス許可を持つユーザーのアカウントと対話する機能を維持するために、誰かがより良い解決策を考え出す必要がありましたか? あなたが何をしたか、ぜひ聞きたいです。
(もちろん、これはすべて私が FB ToS を再読するのを待っています - これが規則に違反している可能性は十分にあり、それはさらにイライラするでしょう)
編集/更新: プッシュする必要があるデータは、さまざまなソースからサーバーに到着し、適切なユーザーのアルバムにプッシュされるフォト アルバムへの画像です (もちろん、事前に付与された許可があります)。イメージがサーバーに到達した時点で、エンド ユーザーに新しい短い有効期間のトークンを付与してもらうために、Web ベースのエンド ユーザーとのやり取りが行われることを保証することはできません。基本的に、offline_access
この IMO には本当に理想的でした。
更新 2: 注意: トークンを付与または延長する必要があるときに、ユーザーが必ずしもアプリや Facebook を使用しているとは限らないというのは、私のユース ケースにとって非常に重要です。
[1] https://developers.facebook.com/roadmap/offline-access-removal/ [2] http://developers.facebook.com/blog/post/2011/05/13/how-to--handle -期限切れのアクセストークン/