ビジネス向けFacebookログイン

ビジネス向けFacebookログインは、ビジネスクライアントのアセットへのアクセスを必要とする技術提供者とビジネスアプリ開発者向けに推奨される、認証と承認ソリューションです。これは、Facebookログインの代わりに使用する方法です。技術提供者でない場合、またはほかのビジネスが利用するビジネスアプリを構築しているのではない場合は、認証ソリューションとしてFacebookログインを使用してください。

メリット

Facebookログインと違い、ビジネス向けFacebookログインでは、アプリが必要とするアクセストークンの種類、アセットの種類、アクセス許可を指定し、セット(設定)として保存できます。その後、ログインフローを完了してアプリにビジネスアセットへのアクセスを許可できるビジネスクライアントに、そのセットを提示できます。これにより、ビジネスアプリに通常は必要ない特定のカテゴリの情報に対するアクセス許可を、ビジネスが付与できないようにします。つまり、アプリのニーズに合わせて複数のアクセストークンから選ぶことが可能になります。

ユーザーデータにアクセスできるアプリのほとんどは、継続審査を受ける必要があります。ただし、アプリにビジネス権限/機能のみが必要な場合は、ビジネス向けFacebookログインをインストールできる場合があります。これにより、アプリが継続審査を受ける必要性が軽減されます。

サポートされているアクセス許可

ビジネスクライアントに以下のアクセス許可をリクエストできます。Facebookログインと異なり、ビジネス用Facebookログインでは設定で指定したすべてのアクセス許可をビジネスクライアントが付与する必要があることに注意してください。

emailpublic_profileのアクセス許可はすべてのアプリに自動的に付与されます。ただし、各アプリのインストールについては、サポートされている1つ以上のほかのアクセス許可と一緒に使用する必要があります。

public_profileアクセス許可は全アプリに自動的に付与されますが、サポートされているほかのアクセス許可(emailを除く)が1つ以上アプリユーザーにより付与されているのでない限り、scopeパラメーターで返されることはありません。

使用できるアクセス許可ユーザーアクセストークンビジネス連携システムユーザーアクセストークン

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_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ログインを使うことにより、ビジネス連携システムユーザーアクセストークンまたはユーザーアクセントークンのいずれかを取得できます。ビジネス向けFacebookログインに切り替えても、現在のアクセストークンには影響しません。

ビジネス連携システムユーザーアクセストークン

ビジネス連携ユーザーアクセストークンは、ビジネス向けFacebookログインによって生成されます。アプリユーザーからの入力に頼ることなく、ビジネスクライアントの広告オブジェクトやページ上でプログラムによる自動アクションを実行する場合や、将来再認証が必要な場合に使用します。以下はその例です。

  • 1時間ごとに行われる、サーバー間のコンバージョンAPI呼び出し。
  • ページとしての自動返信の送信。
  • 製品カタログインベントリーへの継続的な自動アップデート。
  • 広告インサイト取得の自動化。

ビジネスクライアントからビジネス連携ユーザーアクセストークンを取得するための条件は、次のとおりです。

  • アプリでモバイルサーフェス(Android、iOSなど)からのログインをリクエストすることはできません。
  • ビジネス向けFacebookログインのフローを完了させるビジネスクライアントは、Metaビジネスアカウントを持っているか、作成する必要があります。
  • アプリは、あなたが全権限を持っているMetaビジネスアカウントと関連付けられている必要があります。このアカウントは、ビジネスのクライアントが所有するMetaビジネスアカウントとは別個のものにする必要があります
  • エンドユーザーがアプリのインストールを完了すると、ビジネス連携システムユーザーアクセストークンが作成/更新され、送信されてきます。

ビジネス連携システムユーザーアクセストークンのフローをテストするには、アプリに対する役割がテスト担当者に与えられている必要があります。

通常のシステムユーザービジネス連携システムユーザー

表現

ビジネスマネージャが所有または管理するアセットにAPI呼び出しを行うサーバーまたはソフトウェアです。

技術提供者の統合のインフラの一部は、技術提供者のアプリのインストールによりクライアントビジネスによって初期化されます。

アクセス

同じビジネス内のビジネスユーザーのみがアクセスできます。

技術提供者のみがアクセスできます。

トークンの無効化

該当なし。

ビジネスマネージャのシステムユーザータブでは、アクセストークンを無効にすることはできません。代わりにビジネスクライアントは、[ビジネスマネージャ] > [ビジネス設定] > [統合] > [接続済みアプリ]タブの順にアクセスし、[アプリを削除]ボタンをクリックしてアプリをアンインストールすることで、トークンを無効化できます。

詳細なビジネス連携システムユーザーアクセストークン

技術提供者によっては(多くの場合は大規模組織)、各クライアントビジネスに1つのビジネス連携システムユーザーアクセストークンを使用する代わりに、目的や部署ごとに異なるアクセス設定が必要になる場合があります。クライアントビジネスごとに複数の詳細なビジネス連携システムユーザーアクセストークンを使用することで、運用のスケーラビリティやセキュリティを向上させることができます。

  • 詳細なアクセストークンは、クライアントビジネスの事業に固有のものです。異なる複数のクライアントビジネスで共有したりアクセスしたりすることはできません。
  • 詳細なアクセストークンのスコープとアセットリストは、元のビジネス連携システムユーザーアクセストークンのサブセットでなければなりません。
  • トークンが不正利用された場合、その特定のクライアントビジネスが影響を受けるだけであり、全クライアントビジネスのすべてのビジネスアカウントに影響することはありません。これは、潜在的なセキュリティインシデントを分離し、さまざまなビジネスアカウントやクライアントビジネスの間の相互依存関係を断ち切るのに役立ちます。

ビジネス連携システムユーザーアクセストークン管理API

このエンドポイントを利用することにより、開発者は既存のシステムユーザーアクセストークンを以下のように管理することができます。

  • 既存のビジネス連携システムのユーザーアクセストークンに基づいて、さらに詳細なシステムユーザーアクセストークンを生成する
  • 既存のビジネス連携システムユーザーアクセストークンを取り出す(元のトークンと詳細なトークンの両方)
パラメーター
オブジェクト説明

Client business id

整数

必須。

エンドユーザーがビジネス向けFacebookログインフローを通じてアプリをインストールし、それによりシステムユーザーアクセストークンが生成される場合、そのトークンはクライアントが選択したビジネスをスコープとします。Client business idは、それらのビジネスのいずれかのIDです。

Appsecret_proof

文字列

必須。

これはトークン管理APIなので、サーバーからの呼び出しのセキュリティを高めるためにアクセストークンのAppsecret_proof sha256ハッシュが必要です。詳しくはこちらを参照してください。

Access_token

文字列

必須。

Access_tokenには、manage_businessアクセス許可が必須です。

system_user_id

整数

任意。

system_user_idは、アクセストークン内でのシステムユーザーのIDです。

fetch_only

ブール

任意。

fetch_onlyは、既存のトークンを取り出すために使うフラグであり、この操作が読み取り専用であることを示します。

asset

整数

任意。

詳細なトークンを生成する場合は、asset IDをコンマで区切ったリストを設定できます。アセットのリストは、元のアクセストークンのアセットのサブセットでなければなりません。

scope

ブール

任意。

詳細なトークンを生成する場合は、scope IDをコンマで区切ったリストを設定できます。アセットのリストは、元のアクセストークンのスコープのサブセットでなければなりません。

set_token_expires_in_60_days

ブール

任意。

新しいトークンを生成する場合は、トークンの有効期限を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ログインが自動的にインストールされるビジネスタイプのテストアプリを作成する必要があります。

設定を作成する

設定とは、アプリがビジネスクライアントに求めるトークンの種類、ビジネスアセット、アクセス許可をグループ化したものです。このグループ化されたものは、ユーザーがアプリをインストールする際に、認証・承認フローの一環として表示されます。アプリのニーズに応じて、複数の設定を作成し異なるユーザーに提示できます。設定を作成するには、次の手順を実行します。

  1. アプリをアプリダッシュボードに読み込みます
  2. ビジネス向けFacebookログイン製品を追加します
  3. [設定]をクリックします
  4. [+設定を作成]をクリックします
  5. 設定に名前を付けます
  6. ビジネスクライアントからリクエストしたいアクセストークンの種類を選択します
  7. [システムユーザーアクセストークン]を選択した場合は、アプリがアクセスする必要があるアセットを選択します
  8. アプリに必要なアクセス許可を選択します
  9. [作成]をクリックします。

設定を作成すると設定IDが生成されます。このIDは、SDK (または手動)で使用できます。

ビジネス連携システムユーザーアクセストークンのアプリダッシュボードの設定は次のとおりです。

何らかのエラーが発生しました
エラーが発生し、この動画を再生できませんでした。

WhatsApp埋め込み登録設定を作成する

WhatsApp埋め込み登録は、ビジネスソリューションプロバイダー(BSP)しかアクセスできません。

  1. アプリをアプリダッシュボードに読み込みます
  2. ビジネス向けFacebookログイン製品を追加します
  3. [設定]をクリックします
  4. [+設定を作成]をクリックします
  5. 設定に名前を付けます
  6. [WhatsApp埋め込み登録]を選択すると、アプリのWhatsApp埋め込み登録へのオンボーディングが有効になります。WhatsApp埋め込み登録では、システムユーザーアクセストークンのみが使用可能です
  7. トークンの有効期限を選択します。60日を選択することをおすすめします。これにより、トークン漏洩のリスクが最小限に抑えられ、システムのセキュリティが強化されます。
  8. アプリがアクセスする必要があるアセットを選択します。このステップは、前のステップでシステムユーザーアクセストークンを選択した場合にのみ使用でき、WhatsAppアカウントの選択を解除することはできません
  9. アプリのアクセス許可(whatsapp_business_managementおよびwhatsapp_business_messaging)を選択してください
  10. [作成]をクリックします。

IG設定を作成する

このフローは、InstagramグラフAPIでの使用についてのみ最適化されています。

  1. アプリをアプリダッシュボードに読み込みます
  2. ビジネス向けFacebookログイン製品を追加します
  3. [設定]をクリックします
  4. [+設定を作成]をクリックします
  5. 設定に名前を付けます
  6. InstagramグラフAPIを選びます。それにより、Instagram固有のログインフロー(https://developers.facebook.com/docs/instagram/business-login-for-instagram/)に対するアプリのオンボーディングが有効になります。ユーザーアクセストークンのみ使用可能です
  7. アプリのために以下のアクセス許可を選択します
  8. [作成]をクリックします。

ログインダイアログを呼び出す

MetaのSDKを使用してビジネス向けFacebookログインのダイアログを呼び出すか、ログインフローを手動で作成してログインダイアログを呼び出すことができます。

SDKを使用した呼び出し

MetaのいずれかのSDKを使用してログインダイアログを呼び出すことができます。その際、アプリが必要とするスコープ(アクセス許可)のリストを、設定IDとアクセストークンの必要なOAuth付与の種類に置き換えます。

MetaのSDKに不慣れな場合は、まずJavaScript SDKをインストールして消費者タイプのFacebookログイン製品と連携させてから、SDKを参照する次のサンプルのように、ビジネス用の作業を行うことをおすすめします。

ビジネス連携システムユーザーアクセストークンの設定

次に、システムユーザーアクセストークン(SUAT)用の設定を使用するように変更されたJavaScript SDKのFB.login()メソッドの例を示します。SUATが認証コード付与タイプを必要とするため、入力するconfig_idが(使用するべきではない)scopeから置き換えられており、response_typecodeに設定されていることに注意してください。override_default_response_typetrueに設定する必要があります。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()メソッドの例を示します。scopeconfig_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ログインへの切り替えの対象となるアプリであれば、次の手順でオプトインバナーを表示させることができます。

  1. アプリのアプリダッシュボードに移動します
  2. Facebookログイン製品に移動するか、またはそれを追加します
  3. [設定]タブまたは[クイックスタート]タブをクリックします

ビジネス向けFacebookログインに切り替えるには、バナー内の[オプトイン]ボタンをクリックする必要があります。このアプリに関連するテストアプリも自動的にオプトインします。

切り替え後、アプリタイプはビジネスタイプになります。アプリが意図どおりに機能しない場合、切り替え後30日以内であれば、アプリごとにFacebookログインに戻すことができます。ただし、戻すことができるのは最大3回です。Facebookログインに戻すことにした場合に、設定IDを通じてビジネス向けFacebookログインのログインダイアログが起動されると、ダイアログは読み込みに失敗することがあります。Facebookログインではconfig_idパラメーターがサポートされておらず、config_idパラメーターをscopeパラメーターに置き換える必要があるからです。

トラブルシューティング

アプリインストーラーで、以下の理由のためにエラーメッセージが出ることがあります。

  • 設定IDが無効
  • システムユーザーアクセストークンがモバイルデバイス上で現在サポートされていない
  • システムユーザーアクセストークンが間違ったresponse_typeで設定されている

機能に影響を与える可能性のある変更は次のとおりです。

  • アプリタイプが「なし」の場合にビジネス向けFacebookログインに切り替えると、アプリのタイプが「ビジネス」タイプに変わり、このログイン製品で利用可能なアクセス許可機能製品にしかアクセスできなくなります。
  • 既存のアプリインストーラーがemailまたはpublic_profileのアクセス許可のアクセスしかできない場合、アプリをビジネス向けFacebookログインに切り替えると、以前にインストールしたトークンは無効になります。
  • 既存のアプリインストーラーに、ビジネス向けFacebookログインでサポートされていないアクセス許可/機能へのアクセス許可が付与されている場合、アプリがビジネス向けFacebookログインに切り替わると、それらのアクセス許可/機能は即座に取り消されます
  • アプリにビジネス向けFacebookログインとMeta Business拡張機能の両方の製品がある場合、Meta Business拡張機能のエクスペリエンスは、ビジネス向けFacebookログインでサポートされているアクセス許可に制限されます。

Facebookログインへの切り替え

ビジネス向けFacebookログインに切り替えた後にアプリが正しく機能しない場合、アンインストールしてFacebookログインに戻すことができます。戻すには、アプリダッシュボード[ビジネス向けFacebookログイン] > [設定]に移動し、[Facebookログインに切り替える]のリンクをクリックします。ビジネス向けFacebookログインを設定する際のエクスペリエンスの改善に役立つアンケートが表示されます。各アプリは、切り替え後30日以内であれば、Facebookログインに戻すことが可能です。戻すことができるのは、最大3回までです。

よくある質問

私のアプリがビジネス向けFacebookログインの利用対象外なのはなぜですか?

ビジネス向けFacebookログインがサポートできるのは特定のアクセス許可と機能のみです。ビジネス向けFacebookログインでサポートされていないアクセス許可や機能をリクエストした場合、アプリは利用対象外です。emailpublic_profileのアクセス許可をリクエストする場合は、サポートされているその他のアクセス許可も、少なくとも1つ一緒にリクエストする必要があります。

アプリをオプトインの対象にするにはどのような手順を実行できますか?

アプリがオプトインの対象外の場合は、新しいビジネスタイプアプリを作成すると、ビジネス向けFacebookログインが自動的に利用可能になり、アプリレビューによって、サポートされるビジネスアクセス許可をリクエストできるようになります。

ビジネス向けFacebookログインを実装する際、どんなアクセス許可をリクエストする必要がありますか?

アプリの機能に必要な最小限のアクセス許可のみをリクエストしてください。各権限と機能が必要な理由について、ユーザーに対して透明性を保ってください。emailpublic_profileアクセス許可は、アプリのインストールごとに、サポートされるほかのアクセス許可の少なくとも1つと共にリクエストする必要があります。サポートされているアクセス許可を確認するための設定を作成し、より多くのカスタムオンボーディングのための許可リクエストをバンドルすることができます。