사용자가 Facebook Business 확장 기능을 설치하였고 해당 사용자 액세스 토큰(사용자에 대한 API 호출에 사용)을 보유하고 있다면 사용자로부터 픽셀 ID, Instagram 비즈니스 ID, 페이지 ID, 비즈니스 관리자 ID, 광고 계정 ID, 카탈로그 ID(선택 사항) 또는 액세스 토큰을 가져와 관련 기능을 구성해야 합니다. 이러한 ID는 API 엔드포인트와 비즈니스 구성에 사용됩니다.
OBO 솔루션을 사용하면 클라이언트는 클라이언트 비즈니스 관리자의 운영자 액세스 토큰만 받는 대신, 파트너 비즈니스 관리자의 운영자 시스템 사용자 액세스 토큰을 사용하여 액세스 토큰을 받을 수 있습니다.
사용자가 FBE를 설치한 후 확장 기능에서 클라이언트 비즈니스 관리자에 직원 시스템 사용자를 생성합니다. {App Name} System User (FBE)
스키마에 따라 이 새로운 시스템 사용자에 이름을 지정합니다.
시스템 사용자는 비즈니스 관리자가 소유하거나 관리하는 자산으로 API 호출을 보내는 서버나 소프트웨어를 나타냅니다.
이 시스템 사용자는 다음의 작업 권한이 있는 모든 관련 FBE 자산에 대한 권한을 보유하고 있습니다.
'MANAGE'
'MANAGE'
'MANAGE'
'EDIT'
FBE 설치 후 Webhooks 또는 비즈니스 로그인을 통해 사용자 액세스 토큰을 받은 경우 해당 토큰을 사용하여 비즈니스 관리자의 시스템 사용자 액세스 토큰을 가져올 수 있습니다. 이를 위해서는 다음과 같이 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
)을 전달할 수 있습니다. 비즈니스 액세스 토큰에 대해 자세히 알아보세요.
Webhooks의 token_type
필드는 수신한 access_token
이 사용자 액세스 토큰인지 시스템 사용자 액세스 토큰인지 나타냅니다.
사용자가 Instagram을 통해 FBE를 설치하는 경우 Webhooks는 클라이언트 비즈니스 관리자에서 생성된 시스템 사용자 토큰을 반환하므로 이 API를 호출할 필요가 없습니다.
Facebook에서는 FBE의 설치, 제거 및 재구성에 대한 업데이트를 즉시 받을 수 있도록 비즈니스가 FBE를 설치, 수정 또는 제거할 때마다 Webhooks 이벤트를 실행합니다.
사용자가 FBE를 설치하거나 수정할 때마다 앱에서는 Webhooks 구성을 검사하여 사용자가 앱과의 연결에서 어떤 자산을 수정, 추가 또는 제거했는지 확인해야 합니다. 앱의 동작은 가장 최근에 연결된 자산을 기준으로 업데이트됩니다.
GET
) 및 이벤트 알림(POST
)).설치 Webhooks를 수신할 때마다 앱에서 다음과 같은 작업을 수행해야 합니다.
제거 시 다음의 단계를 수행하세요.
응답 필드
필드 | 설명 |
---|---|
ad_account_id 유형: 문자열 | 사용자가 FBE에서 선택한 광고 계정 ID. 앱에 |
business_manager_id 유형: 문자열 | FBE에 사용하는 비즈니스 관리자 ID. |
catalog_id 유형: 문자열 | 사용자가 FBE로 선택한 카탈로그 ID. 사용자는 이 ID로 제품 카탈로그를 관리할 수 있습니다. |
fbe_event 유형: 문자열 | 이벤트 알림이 설치인지 제거인지 나타내는 FBE 이벤트. |
flow 유형: 문자열 | 사용자가 온보딩한 플로를 나타내는 플로(예: |
commerce_merchant_settings_id 유형: 문자열 | 파트너가 특정 FBE 커머스 판매자 설정과 관련된 정보를 읽도록 하는 데 사용하는 커머스 판매자 설정 ID. |
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 및 Webhooks에서 참조한 |
feature_type 유형: 문자열 | 설치한 기능의 유형. 기능 리스트 표에는 사용 가능한 모든 기능 세트가 나열되어 있습니다. 활성화한 기능만 추적하면 됩니다. |
connected_assets 유형: 배열 | 각 기능에만 해당하고 이와 관련 있는 자산의 리스트. 자산 설명은 이 표의 상단에 언급된 내용과 일치합니다. |
additional_info 유형: 배열 | 연결된 기능에 대한 추가 정보. |
새로운 설치에 대한 Webhooks 이벤트를 수신하는 경우 1) 픽셀 ID는 해당 비즈니스에 고유하고 표준 픽셀 이벤트를 실행하는 데 사용해야 하므로 해당 pixel_id
에 대한 business_id
의 매핑을 유지해야 합니다. 2) 카탈로그 푸시 API 중 하나(활성화되어 있는 경우)를 사용하여 해당 비즈니스의 인벤토리를 업데이트해야 합니다.
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를 설치한 모든 비즈니스는 다음의 엔드포인트를 사용하여 기본 설치 정보(IG Business ID and/or Page ID
가 포함된 프로필 리스트 및 pixel_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 및 Webhooks에서 참조한 |
유형: 문자열 | 고유한 기능의 이름. |
유형: 문자열 | 설치한 기능의 유형. 활성화한 기능만 추적하면 됩니다. |
유형: 배열 | 각 기능에만 해당하는 자산의 리스트. |
유형: 문자열 | Shop이 새로운 변경 사항에 영향을 받는지 여부를 나타내는 'Active'는 Shop이 표시된다는 것을 의미합니다. 'Inactive_offsite'는 Shop이 사이트 내 결제를 사용하지 않아서 표시되지 않는다는 것을 의미합니다. 'Inactive_other'는 Shop이 결제 스타일과 관련되지 않은 다른 이유로 표시되지 않는다는 것을 의미합니다. 'No_longer_available'은 이 Shop이 미국이나 주요 시장에 없고 더 이상 제공되지 않는다는 것을 의미합니다. |
이 모델에는 각 기능의 기능 인스턴스 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, }, ], ... }