#はじめに
Facebookの投稿やinstagramの投稿をwebサイトで表示させるために、有効期限無制限のアクセストークンを取得しGraph APIを使用して表示させていたが、「有効期限無制限」というわりにたびたび表示されないことがあった。
アクセストークンを入れ替えるなどして対応していたが、あまりに手間がかかりすぎる。
Instagram投稿表示に必要な無期限アクセストークンの取得方法はこちら。
#原因
暫定的な原因だが下記。
アプリの非アクティブ化
期限までにDUCを完了できなかった場合、APIは、DUCが完了するまでアプリによって行われたすべてのクエリを拒否します。
https://developers.facebook.com/docs/development/maintaining-data-access/data-use-checkup?locale=ja_JP
グラフAPI v8.0(2020年8月4日(火))で発表したアクセスレベルモデルに、v10.0(2021年2月23日)からはpublic_profile (デフォルト公開プロフィールフィールド)アクセス許可とemailアクセス許可が追加された。
このプロセスでは、開発者はFacebookプラットフォームAPI経由で自分たちがアクセスするデータのタイプをレビューし、データの利用方法がFacebookの規約とポリシーに準拠していることを期間内に確認する必要がある。
期限が過ぎると、期限の翌月の1か月間にわたってAPI呼び出しがスロットリングされ、プラットフォームアクセスの取り消しが開始される。
アプリごとにデータの使用状況の確認を行い、非アクティブとなったアプリをアクティブに戻す(非アクティブとならないように確認を行う)必要がある。
なお、期限の60日、30日、10日、3日前にアラートが届くようになっている。
#手順
-
ログイン
-
データの使用状況の確認をクリック
- アラートなし → 期限は先
- 緑色 → 確認済み
- 黄色 → 確認必要期間(失効まで60日)
- 赤色 → 期限超過
- 各権限、機能、または製品の説明を読み、チェックボックスをオン
- [続行]をクリック
- チェックボックスをオンにして、プラットフォーム規約と開発者ポリシーに準拠していることを証明し、[続行]をクリック
- [送信]をクリックして、チェックを完了
#注意
期限から1か月を過ぎるとプラットフォームアクセスは完全に取り消されるため注意が必要。
完全に取り消されたアクセスは、アプリレビューを申請する必要がある。
#あとがき
年ごととの記載があるが、体感ではもっと頻繁に切れていた印象がある。もしかしたら別の原因があるのかもしれない。
期限にさえ気をつけていればトークンの入れ替えをしなくても済むため手間がグッと減った。
#参考
https://developers.facebook.com/blog/post/2020/07/01/platform-terms-developer-policies/?locale=ja_JP
https://developers.facebook.com/docs/development/maintaining-data-access/data-use-checkup?locale=ja_JP