ビジネス向けFacebookログインは、Metaのビジネスツールと連携してマーケティング、メッセージ、販売ソリューションを構築するための、技術提供者におすすめの認定・認証ソリューションです。
ビジネス向けFacebookログインでは、アプリのニーズに応じてMetaアプリダッシュボードでのログイン体験を作成することができます。アプリが必要とするアクセストークンのタイプ、アセット、アクセス許可を指定し、設定として保存できます。ログイン中に、アプリユーザーにこの設定が表示されるので、ユーザーはアプリに自分のビジネスアセットへのアクセスを許可することができます。
email
とpublic_profile
のアクセス許可は全アプリに自動的に付与されますが、アプリのインストールごとにサポートされているその他のアクセス許可を少なくとも1つ含める必要があります。次の表は、ビジネス向けFacebookログインで使用できるアクセス許可を示しています。
使用できるアクセス許可 | ユーザーアクセストークン | ビジネス連携システムユーザーアクセストークン(WhatsApp) |
---|---|---|
ads_management | ✓ | ✓ |
ads_read | ✓ | ✓ |
business_management | ✓ | ✓ |
catalog_management | ✓ | ✓ |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email | ✓ | なし |
instagram_basic | ✓ | ✓ |
instagram_content_publish | ✓ | ✓ |
instagram_manage_comments | ✓ | ✓ |
instagram_manage_insights | ✓ | ✓ |
instagram_manage_messages | ✓ | ✓ |
instagram_shopping_tag_products | ✓ | ✓ |
leads_retrieval | ✓ | ✓ |
manage_app_solutions | ✓ | ✓ |
manage_fundraisers | ✓ | ✓ |
pages_manage_cta | ✓ | ✓ |
page_events | ✓ | ✓ |
pages_manage_ads | ✓ | ✓ |
pages_manage_engagement | ✓ | ✓ |
pages_manage_instant_articles | ✓ | ✓ |
pages_manage_metadata | ✓ | ✓ |
pages_manage_posts | ✓ | ✓ |
pages_messaging | ✓ | ✓ |
pages_read_engagement | ✓ | ✓ |
pages_read_user_content | ✓ | ✓ |
pages_show_list | ✓ | ✓ |
private_computation_access | ✓ | ✓ |
public_profile | ✓ | なし |
publish_video | ✓ | ✓ |
read_insights | ✓ | ✓ |
read_audience_network_insights | ✓ | ✓ |
whatsapp_business_management | ✓ | ✓ |
whatsapp_business_messaging | ✓ | ✓ |
|
|
ビジネス向けFacebookログインを使うことで、ビジネス連携システムユーザーアクセストークンまたはユーザーアクセントークンのいずれかを取得できます。
ユーザーアクセストークンは、アプリがユーザーからのインプットに基づいてリアルタイムでアクションを実行する場合に使用します。例えば、ユーザーがページにコンテンツを投稿する際にテキストを入力してボタンをクリックすることが必要なアプリの場合、ユーザーアクセストークンを使用します。さらに、ビジネスポートフォリオの管理者アクセス許可を必要とするAPIを使う場合にも、ユーザーアクセストークンを使います。
ビジネス連携システムユーザーアクセストークンは、アプリユーザーからの入力に頼ることなく、あるいは再認証を将来求めることなく、ビジネスクライアントのアセットに対してプログラムによる自動化されたアクションを実行する場合に使用します。以下はその例です。
ビジネスクライアントからビジネス連携システムユーザーアクセストークンを取得するための条件は、次のとおりです。
ビジネス連携システムユーザーアクセストークンのこのフローをテストするテスト担当者には、アプリに対する役割とクライアントビジネスに対する全権限がなければなりません。
異なる目的や部門で異なるアクセス権の設定が必要な場合は、複数の粒度のビジネス連携システムユーザーアクセストークンをクライアントビジネスごとに使用し、連携のスケーラビリティとセキュリティを向上させることができます。
詳細なアクセストークンは、クライアントビジネスポートフォリオに固有のものです。異なる複数のクライアントビジネスで共有したりアクセスしたりすることはできません。アクセストークンのスコープとアセットリストは、元のビジネス連携システムユーザーアクセストークンのサブセットになります。
トークンが不正利用された場合にセキュリティインシデントがほかのものに影響を与えないようにするため、その特定のクライアントビジネスだけが影響を受け、全クライアントビジネスのすべてのビジネスポートフォリオに影響が及ばないようになっています。
クライアントビジネスがビジネス向けFacebookログインを通じてアプリをインストールし、ビジネス連携システムユーザーアクセストークンを生成する場合、そのトークンにはクライアントビジネスIDが含まれます。このIDはクライアントビジネスを表しており、API呼び出しを行うためにアプリが使用します。
/<CLIENT_BUSINESS_ID>/system_user_access_tokens
エンドポイントで、既存のビジネス連携システムユーザーアクセストークンを管理できます。以下のアクションを行えます。
オブジェクト | 説明 |
---|---|
| 必須。このアクセストークンには、 |
| 必須。 |
| 任意。より詳細なトークンを生成する場合は、 |
| 任意。既存のトークンをフェッチするために使うフラグであり、この操作が読み取り専用であることを示します |
| 任意。詳細なトークンを生成する場合は、 |
| 任意。新しいトークンを生成するときは、 |
| 任意。アクセストークンに含まれるシステムユーザーのID。 |
読みやすいようにフォーマットしたコードを次に示します。
curl -i -X POST "https://graph.facebook.com/v21.0
/<CLIENT_BUSINESS_ID>/system_user_access_tokens
?appsecret_proof=<APPSECRET_PROOF_HASH>
&access_token=<ACCESS_TOKEN>
&system_user_id=<SYSTEM_USER_ID>
&fetch_only=true"
成功すると、アプリは以降のAPI呼び出しで使う新しいアクセストークンを含むJSON応答を受け取ります。
{ "access_token": "<NEW_ACCESS_TOKEN>" }
ビジネス連携システムユーザーアクセストークン | ユーザーアクセストークン | |
---|---|---|
アクセスの指定 | アクセスは、認証時に明示的に委任されます。アプリは、ビジネスクライアントがビジネス向けFacebookログインフローを完了したときに指定したアセットにしかアクセスできません。技術提供者のみ。 | アクセスは、アプリユーザーの現在のアカウントのアクセスから継承されます。アプリは、アプリユーザーが現在アクセスしているビジネスアセットと同じものにアクセスできます。 |
アカウントの関連付け | 特定のユーザーではなく、ビジネスクライアントのビジネスポートフォリオに関連付けられます。ビジネスクライアントの管理者グループのすべての管理者は、アプリにシステムユーザーアクセストークンを付与できます。 | アプリユーザーの個人Facebookアカウントと関連付けられます。 |
有効期限と更新 | 一般的なオフラインサーバー間通信用で期限なしの状態がデフォルトとなっています。 | ウェブブラウザーなどのオンラインアクティビティ用で短期トークンです。 |
OAuth付与の種類 | 認証コードの付与のみです。 | デフォルトで暗黙付与。セキュリティ向上のために認証コード付与もサポートできます。主に、ウェブブラウザーやモバイルアプリなどのユーザーエージェントベースのクライアントに使用されます。 |
表現 | 技術提供者連携のインフラの一部は、技術提供者のアプリをインストールすることによりクライアントビジネスによって初期化されます。 | ビジネスマネージャが所有または管理するアセットにAPI呼び出しを行うサーバーまたはソフトウェアを表します。 |
トークンの無効化 | ビジネスクライアントがビジネス連携システムユーザーアクセストークンを無効にする場合は、[ビジネスマネージャ] > [設定] > [ビジネス設定] > [連携] > [リンクされたアプリ]の順にアクセスして、アプリを削除します。 | ビジネスクライアントがユーザーアクセストークンを無効にする場合は、Facebookを開き、[設定とプライバシー] > [設定] > [セキュリティとログイン] > [ビジネス連携]の順にアクセスして、アプリを削除します。 |
まだアプリがない場合、ビジネス向けFacebookログインを設定するために必要な手順は次のとおりです。
ログインダイアログを呼び出すためにコード内で使用する設定IDを受け取ります。
WhatApp埋め込み登録設定の作成手順については、WhatsApp埋め込み登録ガイドをご覧ください。
ビジネスメッセージ設定用のコンバージョンAPIの作成手順については、マーケティングAPI – ビジネスメッセージ用のコンバージョンAPIガイドをご覧ください。
InstagramグラフAPIの設定の作成手順については、InstagramグラフAPIドキュメントをご覧ください。
SDKのいずれかを使用してログインダイアログを呼び出す(推奨)か、ログインフローを手動で構築します。
MetaのいずれかのSDKを使用してログインダイアログを呼び出すことができます。その際、アプリが必要とするスコープ(アクセス許可)のリストを、設定IDとアクセストークンの必要なOAuth付与の種類に置き換えます。
MetaのSDKに不慣れな場合は、まずJavaScript SDKをインストールして消費者タイプのFacebookログイン製品と連携させてから、SDKを参照する次のサンプルのように、ビジネス用の作業を行うことをおすすめします。
システムユーザーアクセストークン(SUAT)用の設定を使用するように変更されたJavaScript SDKのFB.login()
メソッドの例を示します。SUATが認証コード付与タイプを必要とするため、入力するconfig_id
が(使用するべきではない)scope
から置き換えられており、response_type
がcode
に設定されていることに注意してください。override_default_response_type
はtrue
に設定する必要があります。trueの場合、response_type
に渡された応答型は、デフォルト型より優先されます。
FB.login( function(response) [ console.log(response); ], [ config_id: '<CONFIG_ID>', response_type: 'code', override_default_response_type: true ] );
ユーザーがログインダイアログフローを完了すると、リダイレクトURLにリダイレクトされてコードが含められます。それから、Metaのサーバーにサーバー間呼び出しを行い、このコードとアクセストークンを交換します。
GET https://graph.facebook.com/v21.0
/oauth/access_token?
client_id=<APP_ID>
&client_secret=<APP_SECRET>
&code=<CODE>
この手順について詳しくは、コードをアクセストークンと交換するをご覧ください。
ユーザーアクセストークン用の設定を使用するように変更されたJavaScript SDKのFB.login()
メソッドの例を示します。scope
がconfig_id
に置き換えられていることに注意してください(scope
を含めることはできますが、使用しないことをおすすめします)。
FB.login( function(response) { console.log(response); }, { config_id: '<CONFIG_ID>' // configuration ID goes here } );
次に、ユーザーアクセストークン設定を使用するように変更されたJavaScript SDKの[ログイン]ボタンの例を示します。
<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>
ログインダイアログを手動で呼び出す方法については、ログインフローの手動によるビルドをご覧ください。ログインダイアログを呼び出してリダイレクトURLを設定するときは、任意のパラメーターとして設定IDを含めます(スコープを含めることはできますが、スコープは使用しないことをおすすめします)。
config_id=<CONFIG_ID>
ビジネス向けFacebookログインに切り替える前に、テストを実施して発生する可能性のある問題について把握することをおすすめします。
ビジネス向けFacebookログインは、ビジネスタイプのアプリで利用できます。
ビジネス向けFacebookログインへの切り替えの対象となるアプリであれば、次の手順を実行するとオプトインバナーが表示されます。
ビジネス向けFacebookログインに切り替えても、現在のアクセストークンには影響しません。さらに、このアプリに関連付けられているすべてのテストアプリも、ビジネス向けFacebookログインに切り替わります。
切り替え後、アプリタイプはビジネスタイプになります。アプリが意図したように機能しない場合、切り替え後30日以内であれば、それぞれのアプリをFacebookログインに戻すことができます。
ビジネスクライアントでは、以下の理由によりエラーメッセージが表示されることがあります。
機能に影響を与える可能性のある変更は次のとおりです。
email
とpublic_profile
のどちらかまたは両方のみをリクエストした場合、アプリをビジネス向けFacebookログインに切り替えると、以前にこれらのクライアントにインストールしたすべてのトークンが無効になります。 config_id
パラメーターがサポートされていないためであり、config_id
パラメーターをscope
パラメーターに置き換える必要があります。詳しくは、Metaビジネス拡張機能をご覧ください。
既存のアプリがビジネス向けFacebookログインに切り替えられている場合にのみ可能です。新しく作成されたビジネスタイプのアプリをFacebookログインに戻すことはできません。
ビジネス向けFacebookログインに切り替えた後にアプリが正しく機能しない場合、Facebookログインに戻すことができます。これを行うには、アプリダッシュボード > [ビジネス向けFacebookログイン] > [設定]の順にアクセスして、[Facebookログインに切り替える]のリンクをクリックします。ビジネス向けFacebookログインを設定する際のエクスペリエンスの改善に役立つアンケートが表示されます。各アプリは、切り替え後30日以内であれば、Facebookログインに戻すことが可能です。
The easiest way to add Facebook Login for Business is to create a new Business Type app, where Facebook Login for Business is automatically available, and request supported business permissions through Meta App Review. If you want to use it for an existing None type app, your app must have advanced access to at least one supported business permission.
If you are not a Tech Provider building solutions using Meta’s business APIs, Facebook Login is recommended for consumer authentication.
Only request the minimum permissions necessary for your app's functionality. Be transparent with users about why you need each permissions and features. Note that the email
and public_profile
permissions must be requested with at least one other supported business permission.
Yes, advanced access to the public_profile
permission is required for Facebook Login for Business apps before they go live. This requirement is crucial to ensure that the app can support authorization from users who do not have an app role, commonly referred to as external users.