После того как пользователь установит расширение Facebook Business и вы получите маркер доступа пользователя для выполнения вызовов API, для настройки различных функций вам также потребуются ID пикселя, ID Instagram Business, ID Страницы, ID Business Manager, ID рекламного аккаунта, ID каталога (необязательно) или маркер доступа пользователя. Эти ID используются для конечных точек API и настройки компании.
С помощью решения OBO клиент может получить маркер доступа, используя в том числе маркер доступа системного пользователя администратора Business Manager партнера, а не только маркер доступа администратора Business Manager клиента.
Эту информацию можно получить следующим образом:
После установки пользователем расширение Facebook Business генерирует системного пользователя в Business Manager клиента. Имя такого системного пользователя создается по схеме {App Name} System User (FBE)
.
Используйте системных пользователей для представления серверов или программного обеспечения, выполняющих вызовы API к ресурсам, которые принадлежат Business Manager или которыми управляет Business Manager.
У этого системного пользователя есть разрешения для всех связанных объектов расширения Facebook Business и следующие разрешения задач:
'MANAGE'
.'MANAGE'
. 'MANAGE'
.'EDIT'
.Если вы получили маркер доступа пользователя с через Webhooks или вход от имени компании после установки расширения Facebook Business, его можно использовать для получения маркера доступа системного пользователя Business Manager. Для этого выполните следующий вызов 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
Используйте разрешение manage_business_extension
для поля scope
. В зависимости от сценария использования может также потребоваться ads_management
или catalog_management
.
В поле access_token
можно передать маркер доступа пользователя (user_access_token
) или маркер доступа системного пользователя администратора Business Manager партнера (partner_bm_admin_system_user_token
). Подробнее см. в статье о маркерах доступа компании.
Поле token_type
в Webhooks указывает, является ли полученное значение access_token
маркером доступа пользователя или маркером доступа системного пользователя.
Если пользователь устанавливает расширение Facebook Business с помощью Instagram, Webhooks вернет маркер пользователя, сгенерированный в клиентском Business Manager, так что вам не понадобится вызывать этот API.
Каждый раз, когда какая-либо из ваших компаний устанавливает или удаляет расширение Facebook Business, мы инициализируем события Webhooks, что позволяет быстро получить информацию об установке, удалении или изменении настроек расширения Facebook Business.
Каждый раз, когда пользователь устанавливает или изменяет расширение Facebook Business, ваше приложение должно проверять конфигурацию Webhooks и определять, какой объект пользователь изменил, добавил или удалил из подключения с вашим приложением. Работа вашего приложения должна обновляться в соответствии с актуальными подключенными ресурсами.
GET
) и уведомления о событиях (POST
) от Facebook.fbe_install
. Кроме того, на карточке есть переключатель, с помощью которого можно деактивировать подписку при необходимости.При получении Webhooks установки ваше приложение должно выполнить следующие действия.
При удалении выполните следующие действия.
Поля ответа
Поле | Описание |
---|---|
ad_account_id Тип: строка | ID рекламного аккаунта, выбранный пользователем в расширении Facebook Business. Если у вашего приложения есть разрешения |
business_manager_id Тип: строка | ID Business Manager, который использовался в расширении Facebook Business. См. связанные объекты из списка |
catalog_id Тип: строка | ID каталога, выбранный пользователем в расширении Facebook Business. Пользователь может задействовать этот ID для управления своим каталогом продуктов. См. связанные объекты из списка |
fbe_event Тип: строка | Событие расширения Facebook Business, которое указывает, относится ли уведомление о событии к установке или удалению. См. связанные объекты из списка |
flow Тип: строка | Процесс пользователя при подключении ( |
commerce_merchant_settings_id Тип: строка | ID настроек Commerce Merchant, позволяющий партнерам читать информацию о выбранных настройках FBE Commerce Merchant. См. связанные объекты из списка |
onsite_eligible Тип: логическое значение | Соответствие требованиям для продажи на платформе. Сообщает, соответствуют ли выбранные объекты требованиям для продажи на платформе. Продавец должен иметь намерение на платформе и выбрать обработку возвратов, отправки или оплаты на сайте партнера. См. связанные объекты из списка |
profiles Тип: массив | Список профилей в виде ID Страницы Facebook или ID профиля Instagram Business. С помощью этих ID можно создавать отдельные запросы к API Graph для других интеграций с Facebook. См. связанные объекты из списка |
pages Тип: массив | Список ID Страниц Facebook. С помощью этих ID можно создавать отдельные запросы к API Graph для других интеграций со Страницами Facebook. См. связанные объекты из списка |
instagram_profiles Тип: массив | Список ID профилей Instagram Business. С помощью этих ID можно создавать отдельные запросы к API Graph для других интеграций с Facebook или Instagram. Если поле отсутствует, это означает, что оно относится только к Instagram. Например, в маркере доступа отсутствует |
pixel_id Тип: строка | Уникальный ID пикселя компании, который нужно сохранить и использовать для инициализации событий пикселя. См. связанные объекты из списка |
token_type Тип: строка | Тип маркера. Указывает, является ли полученное значение |
installed_features Тип: массив | Список функций, которые эта компания интегрировала или установила в процессе настройки. См. текущий список функций. |
feature_instance_id Тип: массив | ID, который уникальным образом представляет каждую установленную функцию. Может использоваться в будущем для изменения или удаления определенного экземпляра. Идентично |
feature_type Тип: строка | Тип установленной функции. Таблица сo списком функций содержит весь набор доступных функций. Вам необходимо отслеживать только включенные функции. |
connected_assets Тип: массив | Список объектов, которые принадлежат или имеют отношение к каждой функции. Описания объектов соответствуют приведенным в верхней части таблицы. |
additional_info Тип: массив | Дополнительная информация о связанной функции. |
При получении события Webhooks для новой установки расширения: 1) сохраняйте привязку business_id
к pixel_id
, так как ID пикселя уникален для компании и его нужно использовать для инициализации стандартных событий пикселя; 2) обновите ассортимент компании с помощью одного из API Catalog PUSH, если они включены.
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 } } ] }] }
Для каждой компании, установившей расширение Facebook Business, можно запросить базовую информацию об установке (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 каждой установленной функции. Может использоваться в будущем для изменения или удаления определенного экземпляра. Идентично |
Тип: строка | Название уникальной функции. |
Тип: строка | Тип установленной функции. Вам необходимо отслеживать только те функции, которые вы включили. |
Тип: массив | Список объектов, которые принадлежат каждой функции. |
Тип: строка | Дополнительная информация о связанной функции, в том числе поля Значение "active" означает, что магазин виден. Значение "inactive_offsite" означает, что магазин не виден, поскольку в нем не используется оформление заказов на сайте. Значение "inactive_other" означает, что магазин не виден по причине, не связанной со способом оформления заказов. Значение "no_longer_available" означает, что этот магазин не находится в США или на ключевом рынке и более не доступен. |
Модель содержит ID экземпляра функции для каждой функции и поля, в которых указан массив всех функций такого типа, установленных соответствующей компанией (пример: призывы к действию для нескольких страниц).
Для ненастраиваемых функций отображаются только ID экземпляра функции и включенный флаг. Чтобы обновить только настраиваемые функции, используйте запрос POST
.
Эта модель отличается от API FBE Installation, так как она, помимо данных о связанных объектах, предоставляет дополнительную информацию о функциях, в том числе статус включения и определенные настройки функций. После вызова API FBE Installation используйте этот 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, }, ], ... }