Facebook はオフライン アクセス許可を非推奨にしました。開発者として、ユーザーがオンラインでないときにユーザーのウォールに投稿する他の方法はありますか?それとも、ユーザーが私のアプリにアクセスしているときにのみ投稿できますか?
3 に答える
アプリで short_access_token と long_access_token の 2 つのテーブル列を増やすことができます。
ユーザーがアプリを認証すると、アクセス トークンが生成され、short_access_token に保存されます。次に、このアクセス トークンを次の場所に渡します。
https://graph.facebook.com/oauth/access_token ?
client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN
これを実行すると、60 日間有効なアクセス トークンが生成されます。long_access_token に格納します。さて、この long_access_token を 60 日間使用します。
長期間有効なアクセス トークンを生成できるのは、1 日に 1 回、つまり初回のみです。この長期間有効なアクセス トークンを使用して、ユーザーのウォールに投稿します (既に許可を得ている場合)。
参照: https://developers.facebook.com/roadmap/offline-access-removal/
最大 60 日間、そのユーザーがログインしていなくても、ユーザー ウォールに投稿できます。その後、ユーザーに Facebook への再ログインを強制し、新しい 60 日間のアクセス トークンを取得する必要があります。
これらすべてを適切に行うには、トークンの取得日を DB に保存し、その日が近づくとユーザーに必要な UI を設定する必要があります。
さらに、ユーザーがアプリケーションの使用頻度が低い場合は、少なくとも 1 日に 1 回はトークンの有効性を実際にテストし、アプリがトークンの有効期限が切れていることを検出した場合は、Facebook にログインするようにユーザーをリダイレクトする必要があります。これも役に立ちます。ユーザーが Facebook のパスワードを変更したため、トークンが無効になります。
もちろん、有効なアクセストークンがあれば、ユーザーが「オンライン」であるかどうかに関係なく、ユーザーのウォールに投稿できます。
読むべきもの(あなたが尋ねる前にあなた自身の多くの研究をしなかったように明らかに見えます):
https://developers.facebook.com/roadmap/offline-access-removal/
https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/