ビジネス代理APIを使用すると、パートナーは次のことが可能になります。
システムユーザーは、商品カタログの更新、サーバー間イベントの送信、カスタムオーディエンスの更新など、反復的なプログラムタスクを実行するユーザーとして定義されます。
このシナリオでは、システムユーザーは従業員のアクセスを持っており、管理者ユーザーのアクセストークンを使用して(作成時に)割り当てられたアセットにのみアクセスすることができます。
システムユーザーを使用する場合とユーザーアクセストークンを使用する場合の利点 — ユーザーはビジネスから離れることができますが、システムユーザーアクセストークンには有効期限がありません。このアプローチでは、クライアントは引き続きビジネスの所有者であり、パートナーがシステムユーザーを介してビジネスマネージャとそのアセットにアクセスできるようになります。クライアントは、ビジネスマネージャにアクセスして、システムユーザーを取り消したり、プログラムによってパートナーへの特定のアセットへのアクセスを削除したりできます。
始める前に、以下の要件と情報を確認することをおすすめします。
クライアントがコマースマネージャを通じてコマースアカウントを作成した場合、そのアカウントはすでにビジネスマネージャに接続されています。この手順に従って、ビジネスマネージャIDを見つけることができます。
クライアントにビジネスマネージャがない場合は、続行する前にビジネスマネージャを作成する必要があります。手順については、ビジネスマネージャAPIをご覧ください。
business_managementPARTNER_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/v26.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/v26.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>&appsecret_proof=<APPSECRET_PROOF>"
appsecret_proofパラメーターは必須です。これは、呼び出しで使用されるアクセストークンのsha256ハッシュであり、app secretをキーとして使用します。有効なappsecret_proofがない場合、このエンドポイントへの呼び出しは却下されます。詳しくは、証明の生成をご覧ください。
応答には、OBO関係にリンクされているシステムユーザーのトークンが含まれています。コマース統合のために他のシステムユーザーを作成したり使用したりする必要はありません。
システムユーザーのIDを取得します。
使用アクセストークン:CLIENT_BM_SU_ACCESS_TOKEN
curl -i -X GET \
"https://graph.facebook.com/v26.0/me?access_token=<CLIENT_BM_SU_ACCESS_TOKEN>"
クライアントのビジネスマネージャでシステムユーザーにアセット(ページとカタログ)を割り当てます。
使用アクセストークン:USERS_ACCESS_TOKEN
curl -i -X POST \
"https://graph.facebook.com/v26.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/v26.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/v26.0/<PARTNER_BM_ID>/managed_businesses?existing_client_business_id=<CLIENT_BM_ID>&access_token=<USERS_ACCESS_TOKEN>"
クライアントが接続とパートナーのシステムユーザーを削除したい場合は、ビジネスマネージャのアプリビューで削除することができます。