ビジネス代理APIを使用すると、パートナーは次のことが可能になります。
システムユーザーは、商品カタログの更新、サーバー間イベントの送信、カスタムオーディエンスの更新など、反復的なプログラムタスクを実行するユーザーとして定義されます。
このシナリオでは、システムユーザーは従業員のアクセスを持っており、管理者ユーザーのアクセストークンを使用して(作成時に)割り当てられたアセットにのみアクセスすることができます。
システムユーザーを使用する場合とユーザー独自のアクセストークンを使用する場合の利点 — ユーザーはビジネスを辞めることができますが、システムユーザーアクセストークンには有効期限がありません。このアプローチでは、クライアントは引き続きビジネスの所有者であり、パートナーがシステムユーザーを介してビジネスマネージャとそのアセットにアクセスできるようになります。クライアントは、ビジネスマネージャにアクセスして、システムユーザーを取り消したり、プログラムによってパートナーへの特定のアセットへのアクセスを削除したりできます。
始める前に、以下の要件と情報を確認することをおすすめします。
クライアントがコマースマネージャを通じてコマースアカウントを作成した場合、そのアカウントはすでにビジネスマネージャに接続されています。この手順に従って、ビジネスマネージャIDを見つけることができます。
クライアントにビジネスマネージャがない場合は、続行する前にビジネスマネージャを作成する必要があります。手順については、ビジネスマネージャAPIをご覧ください。
business_management
PARTNER_BM_ID
: アプリを所有するパートナーのビジネスマネージャのID CLIENT_BM_ID
: クライアントのコマースアカウントに接続されているFacebookページを所有するクライアントのビジネスマネージャのID。USERS_ACCESS_TOKEN
: パートナーのビジネスマネージャが所有するアプリを使用してbusiness_manage
のアクセス許可で作成された、クライアントのビジネマネージャ管理者のアクセストークン。このトークンはFacebookログインで生成されます。PARTNER_BM_ADMIN_SYSTEM_USER_ACCESS_TOKEN
: アプリのパートナーのビジネスマネージャの管理システムユーザーのアクセストークン。CLIENT_BM_SU_ACCESS_TOKEN
: クライアントのビジネスマネージャの下にあるシステムユーザーのアクセストークン。CLIENT_BM_SU_PAGE_ACCESS_TOKEN
: クライアントのビジネスマネージャの下にあるシステムユーザーのページアクセストークン。パートナーとクライアントのビジネスマネージャの間に代理関係を作成します。
これにより、パートナーのビジネスマネージャとクライアントのビジネスマネージャの間に関係エッジが作成されます。これにより、パートナーは次のステップでAPIを介してSUを作成できるようになります。
使用アクセストークン:USERS_ACCESS_TOKEN
curl -i -X POST \
"https://graph.facebook.com/v21.0
/<PARTNER_BM_ID>/managed_businesses?existing_client_business_id=<CLIENT_BM_ID>&access_token=<USERS_ACCESS_TOKEN>"
クライアントのビジネスマネージャの下でシステムユーザーのアクセストークンを取得します。これにより、クライアントのビジネスマネージャにアプリがインストールされ、システムユーザーが作成されます。デフォルトではシステムユーザーの名前は {Client_Business_Manager_Name} SYSTEM USERです。クライアントには、パートナーアプリをビジネスマネージャで共有アセットとして表示できるようになります。(テストユーザー以外のアプリへのアクセスはほとんどありません。)
scope
パラメーターには、関連するAPIエンドポイントにアクセスするために、システムユーザーに必要なアクセス許可を含める必要があります。アクセスするために必要なアクセス許可については、個々のAPIリファレンスを参照してください。
使用アクセストークン:PARTNER_BM_ADMIN_SYSTEM_USER_ACCESS_TOKEN
。このアクセストークンには、business_management
権限と、上記のscope
パラメーターに含まれるすべての権限が必要です。
curl -i -X POST \
"https://graph.facebook.com/v21.0
/<CLIENT_BM_ID>/access_token?scope=ads_management,pages_read_engagement&app_id=<APP_ID>&access_token=<PARTNER_BM_ADMIN_SYSTEM_USER_ACCESS_TOKEN>"
応答には、OBO関係にリンクされているシステムユーザーのトークンが含まれています。コマース統合のために他のシステムユーザーを作成したり使用したりする必要はありません。
システムユーザーのIDを取得します。
使用アクセストークン:CLIENT_BM_SU_ACCESS_TOKEN
curl -i -X GET \
"https://graph.facebook.com/v21.0
/me?access_token=<CLIENT_BM_SU_ACCESS_TOKEN>"
クライアントのビジネスマネージャでシステムユーザーにアセット(ページとカタログ)を割り当てます。
使用アクセストークン:USERS_ACCESS_TOKEN
curl -i -X POST \
"https://graph.facebook.com/v21.0
/<ASSET_ID>/assigned_users?user=<SYSTEM_USER_ID>&tasks=MANAGE&access_token=<USERS_ACCESS_TOKEN>"
このCLIENT_BM_SU_ACCESS_TOKEN
を安全なデータベースに保存し、カタログ管理などのユーザーアクセストークンを必要とするAPIにアクセスするために使用します。
以下を呼び出して、CLIENT_BM_SU_ACCESS_TOKEN
を使用してページアクセストークンを生成します。
curl -i -X GET \
"https://graph.facebook.com/v21.0
/me/accounts?access_token=<CLIENT_BM_SU_ACCESS_TOKEN>"
このリクエストは、一致するaccess_token
を含む、システムユーザーが管理するすべてのページをリストします。回答の例:
{ "data": [ { "access_token": "<access token sanitized>", "category": "Retail Company", "category_list": [ { "id": "2239", "name": "Retail Company" } ], "name": "Test_Shop_Page", "id": "<content sanitized>", "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ], "paging": { "cursors": { "before": "<content sanitized>", "after": "<content sanitized>" } } }
クライアントのコマースアカウントとリンクされたページに対応するaccess_token
をコピーし、安全に保管してください。これを使用して、注文管理や財務レポートなど、コマースアカウントに代わってページアクセストークンを必要とするAPIにアクセスします。
代理関係を削除して、自分に割り当てられたクライアントビジネスマネージャの下のシステムユーザーを削除するにはどうすればよいですか?
curl -i -X DELETE \
"https://graph.facebook.com/v21.0
/<PARTNER_BM_ID>/managed_businesses?existing_client_business_id=<CLIENT_BM_ID>&access_token=<USERS_ACCESS_TOKEN>"
クライアントが接続とパートナーのシステムユーザーを削除したい場合は、ビジネスマネージャのアプリビューで削除することができます。