Amazon CognitoユーザープールでのFacebook APIバージョン更新について

Amazon CognitoユーザープールでのFacebook APIバージョン更新について

今朝、Amazon Web Service社よりFacebookGraphAPI v2.12廃止の旨のメールが届きました。

メール受信内容

いつもお世話になっております。

お客様のアカウントのAmazon CognitoユーザープールではID プロバイダーとしてFacebookが有効化されているため、ご連絡いたします。

Cognitoユーザープールは、Facebook経由でのソーシャルサインインに対応するためにグラフAPIのバージョン: v2.12を使用しております。[1] Facebook社は2020年5月1日より後に当該バージョンのAPIを利用不可にすると発表しております。そのため、AWSではCognitoユーザープールコンソール、および、自動化の仕組みなどで作成されたユーザープールのFacebook連携のAPIバージョンを少なくともv5.0以上にアップグレードしていただくことを推奨しております。

このアップグレードによりFacebookから取得するユーザー属性に影響がある可能性があります。例えば、いくつかの属性はFacebookの比較的新しいAPIバージョンで廃止予定となり、結果が返却されなくなります。[2] これらの属性をご利用の場合、期待する値を取得し続けるためにはCognitoユーザープールの属性マッピングを更新する必要があります。また、お客様のアプリケーションより属性マッピングの一部として保存されたFacebookのアクセストークンを使用したFacebook APIの直接呼び出しにも同じ内容が適用される可能性があります。

Facebookのソーシャルサインインを継続的にご利用いただくために、Cognitoユーザープールは2020年5月1日より前にグラフAPIのバージョン: v2.12をv5.0に自動アップグレードします。AWSは自動アップグレードの実施前にお客様へフォーローアップ通知を行う予定です。

該当するユーザープール:
ap-northeast-1_xxxx
ap-northeast-1_xxxx
ap-northeast-1_xxxx

Cognitoユーザープールにソーシャルサインインの追加、および、FacebookのAPIバージョンを選択する手順については以下のドキュメントリンクをご参照ください。

[1] https://developers.facebook.com/docs/graph-api/changelog/version2.12/
[2] https://developers.facebook.com/docs/graph-api/changelog/version3.0#login
[3] https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-federation-with-social-idp.html

つまり何をすればいいの?

メールにも記載の通り、Facebook Graph API v2.12からv5.0へバージョンアップの対応が必要です。v3.0とかも選択できそうな雰囲気ですが、自動アップグレードでv5.0なのでv5.0にしておくのが無難かなと思います。

主な作業は下記です。

  • public_profileの変更
  • Facebookアクセストークンを使用したFacebook APIの直接呼び出しの処理修正
  • Cognitoのユーザー属性マッピングの修正

public_profileの変更

以前までpublic_profilreで取得可能であった情報に制限が審査が入りました。

  • public_profileで取得していた内容はスコープで厳格に指定することに
  • 特定のパーミッションにアクセスするビジネスについては、定款や法人番号の提出などによる実在証明を提出必須に
  • サードパーティの Facebook 認証を行うケースでは収集したデータについて目的外利用をしないという契約が別途必要に

継続して取得可能な属性情報

  • id
  • first_name
  • last_name
  • middle_name
  • name
  • name_format
  • picture
  • short_name

結果、public_profileに属していた下記の属性は非推奨になってしまいました。

  • age_range
  • context
  • cover
  • currency
  • devices
  • gender
  • link
  • locale
  • timezone
  • updated_time
  • verified

また特記事項として、rsvp_event、user_managed_groups権限は廃止されました。

※user_managed_groups許可はまだテスト目的のために使用することができますが、のために提出することはできません

Facebookアクセストークンを使用したFacebook APIの直接呼び出しの処理修正

例えばユーザープールへFacebookでサインイン後、アクセストークンを利用してFacebookより投稿を取得・投稿するなどのケースで対応必須です。(Facebookの新しいAPIに合わせて呼び出し方やデータのキー名を変更)

※FacebookAPIを「Cognitoユーザープールで外部IDPサインインのみで利用」の場合は対応不要です。

Cognitoのユーザー属性マッピングの修正

バージョンを切り替え、スコープに合わせて適切な属性情報を指定します。

属性マッピング

丁寧に警告出してくれていますね。ありがたいです。

AWSのマネージに感謝!

自前で構築していたら、気づけなかったかもしれないですね。

急にFacebookログインが使用できない!なんて状態は避けたいものです。

AWS社の通知に感謝です。