メインコンテンツまでスキップ

Facebook を使用してソーシャルログインを設定する

Facebook OAuth 2.0 認証 (Authentication) システムを統合し、「Facebook でサインイン」、アカウント連携、Facebook API への安全なアクセスを実現します。

ヒント:

このガイドは、Logto コネクターについての基本的な理解があることを前提としています。未経験の方は、コネクター ガイドを参照して始めてください。

はじめに​

Facebook コネクター (Connector) を利用すると、OAuth 2.0 統合によりアプリケーションで次のことが可能になります:

  • 「Facebook でサインイン」認証 (Authentication) の追加
  • ユーザーアカウントを Facebook アイデンティティに連携
  • Facebook からユーザープロフィール情報を同期
  • Logto Secret Vault に安全に保存されたトークンを使って Facebook API へアクセスし、自動化タスクを実行(例:スレッドへの返信、アプリ内でのコンテンツや動画の公開)

これらの認証 (Authentication) 機能を設定するには、まず Logto で Facebook コネクター (Connector) を作成します:

  1. Logto > Connector > Social connector にアクセスします。
  2. Add social connector をクリックし、Facebook を選択、Next をクリックして、チュートリアルに従い統合を完了します。

ステップ 1: Facebook App Dashboard でアプリをセットアップする​

Facebook を認証 (Authentication) プロバイダーとして利用する前に、Facebook デベロッパープラットフォームでアプリをセットアップし、OAuth 2.0 資格情報を取得する必要があります。

  1. まだアカウントがない場合は、 Facebook デベロッパーとして登録 してください。
  2. アプリ ページにアクセスします。
  3. 既存のアプリをクリックするか、必要に応じて 新しいアプリを作成 します。
ヒント:

ユースケースは、アプリが Meta とどのようにやり取りするかの主要な方法であり、アプリで利用可能な API、機能、権限、プロダクトを決定します。ソーシャル認証 (Authentication) のみ(メールアドレスと public_profile の取得)が必要な場合は「Authentication and request data from users with Facebook Login」を選択してください。Facebook API へのアクセスが必要な場合は、希望するユースケースを選択してください。ほとんどのユースケースは、アプリ作成後に「Facebook Login for business」の統合もサポートしています。

  1. アプリ作成後、アプリダッシュボードページで Use cases > Facebook Login > Settings または Facebook Login for business > Settings に移動します。
  2. Valid OAuth Redirect URIs に Logto の Callback URI を入力します(Logto の Facebook コネクターからコピーしてください)。ユーザーが Facebook でサインインした後、ここに認可コード付きでリダイレクトされ、Logto が認証 (Authentication) を完了します。
  3. Use cases に移動し、ユースケースの Customize をクリックしてスコープを追加します。Logto で Facebook サインインを実装するには email と public_profile の追加を推奨します(必須)。

ステップ 2: クライアント資格情報で Logto コネクターをセットアップする​

  1. Facebook App Dashboard で、サイドバーの App settings > Basic をクリックします。
  2. パネルに App ID と App secret が表示されます。
  3. App secret 入力欄の横にある Show ボタンをクリックして内容を表示し、コピーします。
  4. Logto の Facebook コネクター設定を行います:
    • clientId フィールドに App ID を入力します。
    • clientSecret フィールドに App secret を入力します。
    • Logto で Save and Done をクリックし、アイデンティティシステムと Facebook を接続します。

ステップ 3: スコープを設定する​

スコープは、アプリがユーザーから要求する権限を定義し、Facebook アカウントからどのプライベートデータにアクセスできるかを制御します。

Facebook App Dashboard でスコープを設定する​

  1. Facebook App Dashboard > Use cases に移動し、Customize ボタンをクリックします。
  2. アプリが必要とするスコープのみを追加します。ユーザーは Facebook の同意画面でこれらの権限を確認し、承認します:
    • 認証 (Authentication) 用(必須):email と public_profile
    • API アクセス用(任意):アプリが必要とする追加スコープ(例:Threads API へのアクセスには threads_content_publish、threads_read_replies など)。利用可能なサービスは Meta Developer Documentation を参照してください。

Logto でスコープを設定する​

ニーズに応じて、以下のいずれかの方法を選択してください:

オプション 1: 追加の API スコープが不要な場合

  • Logto の Facebook コネクターの Scopes フィールドを空欄のままにします。
  • デフォルトのスコープ email public_profile がリクエストされ、Logto が基本的なユーザー情報を正しく取得できます。

オプション 2: サインイン時に追加スコープをリクエストする場合

  • 必要なすべてのスコープを Scopes フィールドにスペース区切りで入力します。
  • ここに入力したスコープがデフォルトを上書きするため、必ず認証 (Authentication) 用スコープ email public_profile も含めてください。

オプション 3: 後からインクリメンタルスコープをリクエストする場合

  • ユーザーがサインインした後、フェデレーテッドソーシャル認可 (Authorization) フローを再実行し、ユーザーの保存済みトークンセットを更新することで、必要に応じて追加スコープをリクエストできます。
  • これらの追加スコープは Logto の Facebook コネクターの Scopes フィールドに入力する必要はなく、Logto の Social Verification API を通じて実現できます。

これらの手順に従うことで、Logto Facebook コネクターはアプリに必要な権限のみをリクエストします。

ヒント:

アプリが Facebook API へのアクセスやアクション実行のためにこれらのスコープをリクエストする場合は、Logto Facebook コネクターで Store tokens for persistent API access を有効にしてください。詳細は次のセクションを参照してください。

ステップ 4: 一般設定​

Facebook への接続を妨げることはありませんが、エンドユーザーの認証 (Authentication) 体験に影響する可能性のある一般的な設定を紹介します。

プロフィール情報の同期​

Facebook コネクターでは、ユーザー名やアバターなどのプロフィール情報の同期ポリシーを設定できます。以下から選択してください:

  • サインアップ時のみ同期:ユーザーが初めてサインインしたときにプロフィール情報を一度だけ取得します。
  • サインイン時に常に同期:ユーザーがサインインするたびにプロフィール情報を更新します。

Facebook API へのアクセス用トークンの保存(任意)​

Facebook API へのアクセスやユーザー認可によるアクション実行(ソーシャルサインインまたはアカウント連携経由)を行いたい場合、Logto は特定の API スコープを取得し、トークンを保存する必要があります。

  1. 上記の手順に従って必要なスコープを追加します。
  2. Logto Facebook コネクターで Store tokens for persistent API access を有効にします。Logto は Facebook アクセストークンを Secret Vault に安全に保存します。
注記:

Facebook はリフレッシュトークンを提供していません。ただし、トークン保存が有効な場合、Logto はユーザー認証 (Authentication) 時に自動的に長期間有効なアクセストークン(60日間)をリクエストします。この期間中、ユーザーは手動でアクセストークンを取り消すことができますが、そうでなければ Facebook API へのアクセスに再認可は不要です。注意:offline_access を Scope フィールドに追加しないでください。エラーの原因となる場合があります。

ステップ 5: Facebook のテストユーザーでサインインをテストする(任意)​

テスト、開発者、管理者ユーザーアカウントを使ってアプリでのサインインをテストできます。また、アプリを公開して任意の Facebook ユーザーがサインインできるようにすることも可能です。

  1. Facebook App Dashboard で、サイドバーの App roles > Test Users をクリックします。
  2. Create test users ボタンをクリックしてテストユーザーを作成します。
  3. 既存のテストユーザーの Options ボタンをクリックすると、「名前とパスワードの変更」などの操作が可能です。

ステップ 6: Facebook サインイン設定を公開する​

通常、テスト、管理者、開発者ユーザーのみがアプリでサインインできます。プロダクション環境で一般の Facebook ユーザーがアプリでサインインできるようにするには、アプリを公開する必要があります。

  1. Facebook App Dashboard で、サイドバーの Publish をクリックします。
  2. 必要に応じて Privacy Policy URL と User data deletion フィールドを入力します。
  3. 右下の Save changes ボタンをクリックします。
  4. アプリ上部バーの Live スイッチボタンをクリックします。

Facebook コネクター (Connector) の活用​

Facebook コネクター (Connector) を作成し Facebook と接続したら、エンドユーザーフローに組み込むことができます。ニーズに合わせてオプションを選択してください:

「Facebook でサインイン」を有効化​

  1. Logto コンソールで サインイン & アカウント > サインアップとサインイン
  2. ソーシャルサインイン セクションで Facebook コネクター (Connector) を追加し、ユーザーが Facebook で認証 (Authentication) できるようにします

ソーシャルサインイン体験 について詳しくはこちら。

Account API を利用して、サインイン済みユーザーが Facebook アカウントを連携・解除できるカスタムアカウントセンターをアプリ内に構築できます。Account API チュートリアル をご参照ください。

ヒント:

Facebook コネクター (Connector) は、ソーシャルサインインを有効化せず、アカウント連携や API アクセス専用として有効化することも可能です。

Facebook API へのアクセスとアクションの実行​

アプリケーションは Secret Vault から保存された Facebook アクセストークン (Access token) を取得し、Facebook API を呼び出してバックエンドタスクを自動化できます(例:コンテンツの公開や投稿管理など)。API アクセス用の保存トークン取得ガイドを参照してください。

ユーザーの Facebook アイデンティティ管理​

ユーザーが Facebook アカウントを連携した後、管理者は Logto コンソールでその接続を管理できます:

  1. ユーザー管理 に移動し、ユーザープロフィールを開きます。
  2. ソーシャル接続 セクションで Facebook 項目を見つけて 管理 をクリックします。
  3. このページで管理者は、ユーザーの Facebook 接続を管理し、Facebook アカウントから許可・同期されたすべてのプロフィール情報やアクセストークン (Access token) の状態を確認できます。
注記:

Facebook のアクセストークン (Access token) レスポンスには、特定のスコープ (Scope) 情報が含まれていないため、Logto ではユーザーが許可した権限 (Permissions) の一覧を直接表示できません。ただし、ユーザーが認可 (Authorization) 時に要求されたスコープ (Scope) に同意していれば、アプリケーションは Facebook API へアクセスする際に対応する権限 (Permissions) を持ちます。必要なスコープ (Scope) を Facebook Developer Console と Logto の両方で正確に設定することを推奨します。

参考情報​

Facebook for Developers - ドキュメント Facebook ログイン ドキュメント