write ahead log

ロールフォワード用

「Facebookでログイン」を実装する時に苦労したこと

技術的なこともさておき、MetaのDeveloperのアプリ登録でハマってしまった。

技術的なとこ

技術的にはJSのSDKを公式で提供してくれているので、比較的やりやすい気はする。

ウェブ - Facebookログイン - ドキュメンテーション - Meta for Developers

手順はこんな感じにしたけど、jwtとかでも検証できるっぽい。

  1. SDKでログイン画面を出してFacebookへログインしてもらう
  2. アクセストークンとユーザーIDがJSで取得できるのでsubmitする時に一緒に送る
  3. サーバー側でsubmitされたアクセストークンやユーザーIDが妥当かをFacebookの/meAPIとかにアクセスして検証する(アクセストークンの保持者=ユーザーIDが返ってくるはず)
  4. 妥当ならこのユーザーIDを自分のアプリで使う

グラフAPIの使い方もそんなに難しくない。

概要 - グラフAPI - ドキュメンテーション - Meta for Developers

アプリのダッシュボード

とりあえず登録するとかならこの辺りのスクショ通りなので問題ない。

2021年版 Facebookログイン 設定方法を解説! | WordPressを使ったホームページの作り方

今回ハマったのは

  1. ビジネスアプリとして登録し
  2. ビジネス認証をする前に
  3. 「アプリレビュー」の「アクセス許可と機能」を設定して「アドバンスドアクセス」を与え(ログインの場合は「email」と「public_profile」がいるらしい)
  4. その後にビジネス認証を済ませる

とするとJS側で「このアプリの詳細について追加アップデート中のため、Facebookログインはこのアプリでは利用できません。後ほどもう一度お試しください。」というメッセージが表示されること。

わからないので英語でもググると、こんなページが見つかる。

stackoverflow.com

んー、きっと「アドバンスドアクセス」のことだよね。これ。

アクセス許可を与えなおす

よーわからんのであれこれやった挙句「アクセス許可と機能」の「アドバンスドアクセス」を「スタンダードアクセス」へ戻した後に「アドバンスドアクセス」にしなおした。

すると突然動作するようになった。えぇ。。。

Meta側としてはビジネス認証後に色々設定してね。ってことなんだろう。きっと。

余談

途中何度もブラウザのキャッシュを消した。これをしなかったらもっとハマったと思う。