ユーザーがFacebook Business拡張機能をインストールした後、(そのユーザーのためにAPI呼び出しをするために使う)ユーザーアクセストークンを入手したら、関連機能を構成するために、ピクセルID、InstagramビジネスID、ページID、ビジネスマネージャID、広告アカウントID、カタログID (任意)、またはアクセストークンをそのユーザーから取得する必要があります。これらのIDは、APIエンドポイントとビジネス構成で使われます。
OBOソリューションを使えば、クライアントは、クライアントのビジネスマネージャの管理者のアクセストークンだけでなく、パートナービジネスマネージャの管理システムユーザーのアクセストークンを使ってアクセストークンを取得することもできます。
ユーザーがFBEをインストールすると、FBEによってクライアントのビジネスマネージャに従業員システムユーザーが生成されます。この新しいシステムユーザーは、{App Name} System User (FBE)
スキーマに従って命名されます。
システムユーザーとは、ビジネスマネージャが所有または管理するアセットにAPI呼び出しをするサーバーまたはソフトウェアです。
このシステムユーザーには、以下のタスクアクセス許可が付与された関連するすべてのFBEアセットに対するアクセス許可が付与されています。
'MANAGE'
'MANAGE'
'MANAGE'
'EDIT'
FBEインストール後にWebhookまたはビジネスログインを介してユーザーアクセストークンを受け取った場合は、同じトークンを使ってビジネスマネージャのシステムユーザーアクセストークンを取得できます。そのためには、次のAPI呼び出しを実行します。
curl -X POST \ -F 'app_id={app_id}' \ -F 'scope={permissions}' \ -F 'access_token={access_token}' \ -F 'fbe_external_business_id={fbe_external_business_id}' \ https://graph.facebook.com/<API_VERSION>/<client_business_manager_id>/access_token
scope
フィールドにはmanage_business_extension
アクセス許可を使いますが、用途によってはads_management
やcatalog_management
も必要になることがあります。
access_token
フィールドには、ユーザーアクセストークン(user_access_token
)か、またはパートナービジネスの管理システムユーザーアクセストークン(partner_bm_admin_system_user_token
)を渡すことができます。ビジネスアクセストークンについて詳細をご確認ください。
Webhookからのtoken_type
フィールドは、受信したaccess_token
がユーザーアクセストークンなのかそれともシステムユーザーアクセストークンなのかを示します。
ユーザーがInstagram経由でFBEをインストールしている場合、Webhookからクライアントビジネスマネージャで生成されたシステムユーザーのトークンが返されるため、このAPIを呼び出す必要はありません。
FBEのインストール、アンインストール、再構成に関する最新情報を速やかに受け取るようにするため、1つのビジネスがFBEをインストールしたり変更を加えたりアンインストールしたりするたびにWebhookイベントが起動されます。
ユーザーがFBEをインストールしたり変更を加えたりするたびに、アプリではWebhook設定を調べて、ユーザーが変更を加えたり追加したりアプリとの接続から削除したりした対象アセットがどれかを把握するようにしてください。アプリの動作は、最後に関連させたアセットに基づいて更新するというものになるようにしてください。
GET
)とイベント通知(POST
)。fbe_install
Webhookは自動的にサブスクリプション登録されます。カードには、必要に応じてサブスクリプションを利用解除するために使える切り替えスイッチも備わっています。インストールWebhookが受信されるたびに、アプリでは以下のアクションを実行する必要があります。
アンインストール時には、以下の手順を実行します。
応答フィールド
フィールド | 説明 |
---|---|
ad_account_id 型: 文字列 | FBE内でユーザーが選んだ広告アカウントID。アプリに |
business_manager_id 型: 文字列 | FBEに使用されるビジネスマネージャID。 |
catalog_id 型: 文字列 | FBEでユーザーが選んだカタログID。ユーザーはこのIDを使って商品カタログを管理できます。 |
fbe_event 型: 文字列 | イベント通知がインストールかアンインストールかを示すFBEイベント。 |
flow 型: 文字列 | ユーザーが行ったオンボーディングのフローを示すフロー(例: |
commerce_merchant_settings_id 型: 文字列 | コマース販売者設定ID。パートナーが選んだFBEコマース販売者設定に関する情報を読み取れるようにするため使用される。 |
onsite_eligible 型: ブーリアン | コマースオンサイト利用資格。選択したアセットがオンサイトコマースで利用可能かどうかを示します。販売者は、オンサイトのインテントを引き続き保持し、パートナーサイトで返品/配送/支払いを選択する必要があります。 |
profiles 型: 配列 | プロフィールのリスト(FacebookページIDやInstagramビジネスプロフィールID)。これらのIDを使用して、ほかのFacebook統合のグラフAPIリクエストを別途作成します。 |
pages 型: 配列 | FacebookページIDのリスト。これらのIDを使用して、ほかのFacebookページ統合のグラフAPIリクエストを別途作成します。 |
instagram_profiles 型: 配列 | InstagramビジネスプロフィールIDのリスト。これらのIDを使用して、ほかのFacebook/Instagram統合のグラフAPIリクエストを別途作成します。このフィールドが含まれない場合は、Instagram関連のスコープのみになります。例えば、 |
pixel_id 型: 文字列 | ピクセルイベントを起動するために保存し使用する、このビジネスの一意のピクセルID。 |
token_type 型: 文字列 | トークンのタイプ。受信した |
installed_features 型: 配列 | この事業者がオンボーディングフローで統合/インストールした機能のリスト。最新の機能リストをご覧ください。 |
feature_instance_id 型: 配列 | インストールされている各機能を一意で表すID。将来、特定のインスタンスに修正を加えたりアンインストールしたりするために使用できます。これは機能設定APIおよびWebhookで参照される |
feature_type 型: 文字列 | インストールされている機能のタイプ。機能リストの表には、利用可能な機能セット全体が含まれています。追跡する必要があるのは有効にした機能だけです。 |
connected_assets 型: 配列 | 各機能に固有のアセットおよび各機能に関連するアセットのリスト。アセットの説明は、この表の先頭で言及されているものに対応します。 |
additional_info 型: 配列 | リンク済み機能に関する追加情報。 |
新規インストールのWebhookイベントを受け取ったら、以下のことを行う必要があります。1) business_id
からそのpixel_id
へのマッピングを維持する。これは、ピクセルIDがそのビジネスにおいてユニークであり、標準のピクセルイベントを起動するために使う必要があるからです。2) カタログプッシュAPIの1つ(有効になっている場合)を使って、そのビジネスのインベントリーを更新する。
onsite_commerce_eligible
フィールドによるペイロード{ "data": [{ "ad_account_id": "<ad_account_id>", "business_manager_id": "<business_manager_id>", "catalog_id": "<catalog_id>", "commerce_merchant_settings_id": "<commerce_merchant_settings_id>", "onsite_eligible": true, "profiles": [ "<page_id>", "<instagram_profile_id>" ], "pages": [ "<page_id>" ], "instagram_profiles": [ "<instagram_profile_id>" ], "pixel_id": "<pixel_id>", "token_type": "<token_type>", "installed_features": [ { "feature_instance_id": "<unique_id>", "feature_name" : string, "feature_type": enum, "connected_assets": { "ad_account_id": "<ad_account_id>", "business_manager_id": "<business_manager_id>", "catalog_id": "<catalog_id>", "commerce_merchant_settings_id": "<commerce_merchant_settings_id>", "ig_profile_id": "<instagram_profile_id>" "page_id": "<page_id>", "pixel_id": "<pixel_id>", }, "additional_info": { "onsite_commerce_eligible": bool }, { "shop_status": array }, { "shop_status_info": array } } ] }] }
FBEをインストールしたビジネスでは、以下のエンドポイントを使って、基本的なインストール情報(pixel_id
と、IG Business ID and/or Page ID
を含むプロフィールのリスト)をクエリできます。
CURL -X GET 'https://graph.facebook.com/<API_VERSION>/fbe_business/fbe_installs?fbe_external_business_id=<fbe_external_business_id>&access_token=<access_token>'
{ "data": [{ "token_type": "<token_type>" "installed_features": [ { "feature_instance_id": "<unique_id>", “feature_name” : string, "feature_type": enum, "connected_assets": { “ad_account_id”: "<ad_account_id>", “business_manager_id”: "<business_manager_id>", “catalog_id”: "<catalog_id>", “commerce_merchant_settings_id”: "<commerce_merchant_settings_id>", “ig_profile_id”: "<instagram_profile_id>" "page_id": "<page_id>", "pixel_id": "<pixel_id>", }, "additional_info": { "onsite_commerce_eligible": bool }, { "shop_status": array }, { "shop_status_info": array } } ] }] }
応答には次のフィールドが含まれます。現在これらが、installed_featuresリストの関連アセットについての信頼できる情報源となります。
フィールド | 説明 |
---|---|
型: 文字列 | 受信した |
型: 配列 | このビジネスがオンボーディングフローで統合/インストールした機能のリスト。 |
型: 文字列 | インストールされている各機能を表すユニークID。将来、特定のインスタンスに修正を加えたりアンインストールしたりするために使用できます。これは機能設定APIとWebhookで参照される |
型: 文字列 | ユニークな機能の名前。 |
型: 文字列 | インストールされている機能のタイプ。トラッキングする必要があるのは有効にしたものだけです。 |
型: 配列 | 各機能に固有のアセットのリスト。 |
型: 文字列 | ショップが今後の変更の影響を受けるかどうかを示す "Active" は、ショップが表示されていることを示します。"Inactive_offsite" は、オンサイトチェックアウトを使用していないためにショップが表示されていないことを示します。"Inactive_other" は、チェックアウトスタイルと無関係な理由のためにショップが表示されていないことを示します。"No_longer_available" は、このショップが米国または重要なマーケットにもないため、利用できなくなったことを示します。 |
モデルには、各機能の機能インスタンスID、およびビジネスによってインストールされたそのタイプの全機能から成る配列で構成されるフィールド(複数ページCTAなど)が含まれます。
カスタマイズできない機能の場合、表示されるのは、機能インスタンスIDと有効化されているフラグだけです。POST
リクエストで更新できるのは、カスタマイズ可能な機能のみです。
このモデルはFBEインストールAPIとは異なり、関連アセットだけではなく、有効化ステータスや特定の機能カスタマイズ設定など、追加の機能情報を提供します。FBEインストールAPIを呼び出した後、機能の有効化ステータスまたは設定についてさらに情報が必要な場合は、このAPIを使用します。
読み取り
次のリクエストにより、任意のビジネスの現在の機能設定ステータスを読み取ることができます。
CURL -X GET 'https://graph.facebook.com/<API_VERSION>/fbe_business/?fbe_external_business_id=<fbe_external_business_id>&access_token=<access_token>'
更新
すべての機能を更新するには、次のPOST
リクエストを使います。
CURL -i -X POST \ -F 'fbe_external_business_id=<fbe_external_business_id>' \ -F 'business_config={business_config object}' \ -F 'access_token=<access_token>' "https://graph.facebook.com/<API_VERSION>/fbe_business"
応答
{ "page_cta": { "feature_instance_id": id1, "enabled": true, "cta_button_text": "Book Now", "cta_button_url": "https://partner-site.com/foo-business1", "below_button_text": "Powered by FBE Partner" }, "page_ctas": [ { "feature_instance_id": id1, "enabled": true, "cta_button_text": "Book Now", "cta_button_url": "https://partner-site.com/foo-business1", "below_button_text": "Powered by FBE Partner" }, { "feature_instance_id": id2, "enabled": true, "cta_button_text": "Book Now", "cta_button_url": "https://partner-site.com/foo-business2", "below_button_text": "Powered by FBE Partner" } ], “ig_cta”: {...} "ig_ctas": [{...}, {...}], “ads”: [ { "feature_instance_id": id3, “enabled”: true, }, { "feature_instance_id": id4, “enabled”: true, }, ], ... }