ビジネス向けFacebookログインは、ビジネスクライアントのアセットへのアクセスを必要とする技術提供者とビジネスアプリ開発者向けに推奨される、認証と承認ソリューションです。これは、Facebookログインの代わりに使用する方法です。技術提供者でない場合、またはほかのビジネスが利用するビジネスアプリを構築しているのではない場合は、認証ソリューションとしてFacebookログインを使用してください。
Facebookログインと違い、ビジネス向けFacebookログインでは、アプリが必要とするアクセストークンの種類、アセットの種類、アクセス許可を指定し、セット(設定)として保存できます。その後、ログインフローを完了してアプリにビジネスアセットへのアクセスを許可できるビジネスクライアントに、そのセットを提示できます。これにより、ビジネスアプリに通常は必要ない特定のカテゴリの情報に対するアクセス許可を、ビジネスが付与できないようにします。つまり、アプリのニーズに合わせて複数のアクセストークンから選ぶことが可能になります。
ユーザーデータにアクセスできるアプリのほとんどは、継続審査を受ける必要があります。ただし、アプリにビジネス権限/機能のみが必要な場合は、ビジネス向けFacebookログインをインストールできる場合があります。これにより、アプリが継続審査を受ける必要性が軽減されます。
ビジネスクライアントに以下のアクセス許可をリクエストできます。Facebookログインと異なり、ビジネス用Facebookログインでは設定で指定したすべてのアクセス許可をビジネスクライアントが付与する必要があることに注意してください。
email
とpublic_profile
のアクセス許可はすべてのアプリに自動的に付与されます。ただし、各アプリのインストールについては、サポートされている1つ以上のほかのアクセス許可と一緒に使用する必要があります。
public_profile
アクセス許可は全アプリに自動的に付与されますが、サポートされているほかのアクセス許可(email
を除く)が1つ以上アプリユーザーにより付与されているのでない限り、scope
パラメーターで返されることはありません。
使用できるアクセス許可 | ユーザーアクセストークン | ビジネス連携システムユーザーアクセストークン |
---|---|---|
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email * | ✓ | なし |
✓ | ✓ | |
instagram_content_publish | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
instagram_shopping_tag_products | ✓ | ✓ |
✓ | ✓ | |
manage_fundraisers | ✓ | ✓ |
✓ | ✓ | |
page_events | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
private_computation_access | ✓ | ✓ |
✓ | なし | |
✓ | ✓ | |
✓ | ✓ | |
read_audience_network_insights | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ |
ビジネス向けFacebookログインを使うことにより、ビジネス連携システムユーザーアクセストークンまたはユーザーアクセントークンのいずれかを取得できます。ビジネス向けFacebookログインに切り替えても、現在のアクセストークンには影響しません。
ビジネス連携ユーザーアクセストークンは、ビジネス向けFacebookログインによって生成されます。アプリユーザーからの入力に頼ることなく、ビジネスクライアントの広告オブジェクトやページ上でプログラムによる自動アクションを実行する場合や、将来再認証が必要な場合に使用します。以下はその例です。
ビジネスクライアントからビジネス連携ユーザーアクセストークンを取得するための条件は、次のとおりです。
ビジネス連携システムユーザーアクセストークンのフローをテストするには、アプリに対する役割がテスト担当者に与えられている必要があります。
通常のシステムユーザー | ビジネス連携システムユーザー | |
---|---|---|
表現 | ビジネスマネージャが所有または管理するアセットにAPI呼び出しを行うサーバーまたはソフトウェアです。 | 技術提供者の統合のインフラの一部は、技術提供者のアプリのインストールによりクライアントビジネスによって初期化されます。 |
アクセス | 同じビジネス内のビジネスユーザーのみがアクセスできます。 | 技術提供者のみがアクセスできます。 |
トークンの無効化 | 該当なし。 | ビジネスマネージャのシステムユーザータブでは、アクセストークンを無効にすることはできません。代わりにビジネスクライアントは、[ビジネスマネージャ] > [ビジネス設定] > [統合] > [接続済みアプリ]タブの順にアクセスし、[アプリを削除]ボタンをクリックしてアプリをアンインストールすることで、トークンを無効化できます。 |
技術提供者によっては(多くの場合は大規模組織)、各クライアントビジネスに1つのビジネス連携システムユーザーアクセストークンを使用する代わりに、目的や部署ごとに異なるアクセス設定が必要になる場合があります。クライアントビジネスごとに複数の詳細なビジネス連携システムユーザーアクセストークンを使用することで、運用のスケーラビリティやセキュリティを向上させることができます。
このエンドポイントを利用することにより、開発者は既存のシステムユーザーアクセストークンを以下のように管理することができます。
オブジェクト | 説明 |
---|---|
整数 | 必須。 エンドユーザーがビジネス向けFacebookログインフローを通じてアプリをインストールし、それによりシステムユーザーアクセストークンが生成される場合、そのトークンはクライアントが選択したビジネスをスコープとします。 |
文字列 | 必須。 これはトークン管理APIなので、サーバーからの呼び出しのセキュリティを高めるためにアクセストークンの |
文字列 | 必須。
|
整数 | 任意。
|
ブール | 任意。
|
整数 | 任意。 詳細なトークンを生成する場合は、 |
ブール | 任意。 詳細なトークンを生成する場合は、 |
ブール | 任意。 新しいトークンを生成する場合は、トークンの有効期限を60日に設定できます。 |
curl -i -X POST \ 'https://graph.intern.facebook.com/v17.0/2738613836382965/system_user_access_tokens?appsecret_proof=<app_secret_proof_sanitized>& access_token=<access token sanitized>& system_user_id={system_user_id}& fetch_only=true'
{ "access_token": "{access_token}" }
ユーザーアクセストークンは、アプリがユーザーからのインプットに基づいてリアルタイムでアクションを実行する場合に使用します。例えば、ユーザーがページにコンテンツを投稿するためにテキストを入力してボタンをクリックすることがアプリで求められている場合に、ユーザーアクセストークンを使用します。ユーザーアクセストークンは、管理者アクセス許可をMetaビジネスアカウントで必要とするAPIを使う場合にも使用します。
システムユーザーアクセストークン | ユーザーアクセストークン | |
---|---|---|
アカウントの関連付け | 特定のユーザーではなく、ビジネスクライアントのビジネスアカウントに関連付けられます。ビジネスクライアントの管理者グループのすべての管理者は、アプリにシステムユーザーアクセストークンを付与できます。 | アプリユーザーの個人アカウントと関連付けられます。 |
OAuth付与の種類 | 認証コードのみです。 | デフォルトで暗黙的となっています。主に、ウェブブラウザーやモバイルアプリなどのユーザーエージェントベースのクライアントに使用されます。 |
有効期限と更新 | 一般的なオフラインサーバー間通信用で期限なしの状態がデフォルトとなっています。 | ウェブブラウザーなどのオンラインアクティビティ用で短期トークンです。 |
アクセスの指定 | アクセスは、認証時に明示的に委任されます。アプリは、ビジネスクライアントがビジネス向けFacebookログインフローを完了したときに指定したアセットにしかアクセスできません。 | アクセスは、アプリユーザーの現在のアカウントのアクセスから継承されます。アプリユーザーが現在アクセスしているビジネスアセットと同じものにアクセスできます。 |
ビジネスクライアントは、ビジネスマネージャで[設定] > [ビジネス設定] > [統合] > [連携しているアプリ]の順にアクセスしてアプリを削除することにより、ビジネス連携システムユーザーアクセストークンを無効化できます。
ユーザーアクセストークンについては、ビジネスクライアントはFacebookを開き、[設定とプライバシー] > [設定] > [セキュリティとログイン] > [ビジネス統合]の順にアクセスして、アプリを削除できます。
ビジネス向けFacebookログインをテストするには、ビジネス向けFacebookログインが自動的にインストールされるビジネスタイプのテストアプリを作成する必要があります。
設定とは、アプリがビジネスクライアントに求めるトークンの種類、ビジネスアセット、アクセス許可をグループ化したものです。このグループ化されたものは、ユーザーがアプリをインストールする際に、認証・承認フローの一環として表示されます。アプリのニーズに応じて、複数の設定を作成し異なるユーザーに提示できます。設定を作成するには、次の手順を実行します。
設定を作成すると設定IDが生成されます。このIDは、SDK (または手動)で使用できます。
WhatsApp埋め込み登録は、ビジネスソリューションプロバイダー(BSP)しかアクセスできません。
whatsapp_business_management
およびwhatsapp_business_messaging
)を選択してください このフローは、InstagramグラフAPIでの使用についてのみ最適化されています。
MetaのSDKを使用してビジネス向けFacebookログインのダイアログを呼び出すか、ログインフローを手動で作成してログインダイアログを呼び出すことができます。
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/v19.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ログインに戻すことができます。ただし、戻すことができるのは最大3回です。Facebookログインに戻すことにした場合に、設定IDを通じてビジネス向けFacebookログインのログインダイアログが起動されると、ダイアログは読み込みに失敗することがあります。Facebookログインではconfig_idパラメーターがサポートされておらず、config_idパラメーターをscopeパラメーターに置き換える必要があるからです。
アプリインストーラーで、以下の理由のためにエラーメッセージが出ることがあります。
機能に影響を与える可能性のある変更は次のとおりです。
ビジネス向けFacebookログインに切り替えた後にアプリが正しく機能しない場合、アンインストールしてFacebookログインに戻すことができます。戻すには、アプリダッシュボードで[ビジネス向けFacebookログイン] > [設定]に移動し、[Facebookログインに切り替える]のリンクをクリックします。ビジネス向けFacebookログインを設定する際のエクスペリエンスの改善に役立つアンケートが表示されます。各アプリは、切り替え後30日以内であれば、Facebookログインに戻すことが可能です。戻すことができるのは、最大3回までです。
ビジネス向けFacebookログインがサポートできるのは特定のアクセス許可と機能のみです。ビジネス向けFacebookログインでサポートされていないアクセス許可や機能をリクエストした場合、アプリは利用対象外です。email
とpublic_profile
のアクセス許可をリクエストする場合は、サポートされているその他のアクセス許可も、少なくとも1つ一緒にリクエストする必要があります。
アプリがオプトインの対象外の場合は、新しいビジネスタイプアプリを作成すると、ビジネス向けFacebookログインが自動的に利用可能になり、アプリレビューによって、サポートされるビジネスアクセス許可をリクエストできるようになります。
アプリの機能に必要な最小限のアクセス許可のみをリクエストしてください。各権限と機能が必要な理由について、ユーザーに対して透明性を保ってください。email
とpublic_profile
アクセス許可は、アプリのインストールごとに、サポートされるほかのアクセス許可の少なくとも1つと共にリクエストする必要があります。サポートされているアクセス許可を確認するための設定を作成し、より多くのカスタムオンボーディングのための許可リクエストをバンドルすることができます。