Для описи ассортимента компании в расширении Facebook Business используется каталог. Он используется для поддержки различных функций, в том числе динамической рекламы, магазинов Страниц и карточки избранных услуг. Это необязательная часть интеграции, но она необходима для определенных функций.
Каталог Facebook имеет свой собственный набор API, но расширение Facebook Business интегрируется с некоторыми из них напрямую, чтобы вы могли легко обновлять ассортимент компании на нашей платформе (без необходимости отслеживать ID каталога Facebook с вашей стороны).
Подробнее о том, как заполнить обязательные поля каталога для динамической рекламы и различных сценариев использования, включая магазины на Страницах, Instagram Shopping и Marketplace, см. в этой статье.
Обновить ассортимент можно двумя способами:
Мы настоятельно рекомендуем использовать один из методов отправки (Batch API или API однократной загрузки ленты), так как это позволяет быстро обновлять ассортимент и снижает нагрузку на серверы с обеих сторон. Для этого используется тот же самый access_token
, который возвращается входом для компании и Webhook.
При получении Webhook новой установки необходимо отправить нам полный ассортимент компании. Обновления необходимо отправлять каждый раз, когда компания изменяет свой ассортимент у вас на сайте.
Рекомендуется для большинства компаний электронной коммерции. Batch API — это стандартный API каталога Facebook. Он подходит для компаний с большим (более 100 товаров) и (или) часто обновляемым ассортиментом.
Используется для бронирования (услуг) компаний.API однократной загрузки ленты — это стандартный API каталога Facebook. Он подходит для компаний с небольшим ассортиментом (до 100 товаров).
Он позволяет отправлять полный ассортимент каждый раз, когда в него вносятся изменения. При этом ассортимент в каталоге Facebook обновляется полностью.
Шаг 1. Получите ID ленты, созданный во время установки расширения Facebook Business, отправив ID подключенного каталога (из уведомлений Webhook или от нашей конечной точки API установки расширения Facebook Business):
curl -G \ -d "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds
Подробнее об API ленты продуктов см. в этом разделе.
Шаг 2. Выполните однократную загрузку в ленту:
Пример: файлы ленты, размещенные в общедоступном месте.
curl -X POST \
-F 'url="http://www.example.com/sample_feed.xml"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
url=http%3A%2F%2Fwww.example.com%2Fsample_feed.xml
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'url' => 'http://www.example.com/sample_feed.xml',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"url": "http:\/\/www.example.com\/sample_feed.xml"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Пример: загрузка файлов ленты непосредственно с локального компьютера. Путь к файлу здесь нужно заменить реальным значением.
curl -X POST \
-F 'file=@catalog.csv;type=text/csv' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
file=%40catalog.csv%3Btype%3Dtext%2Fcsv
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'file' => '@catalog.csv;type=text/csv',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"file": "@catalog.csv;type=text\/csv"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Форматы запросов и ответов совпадают с форматами для исходной конечной точки.
Отрасль | Пример ленты в файле CSV | Пример ленты в файле TSV | Пример ленты в файле XML |
---|---|---|---|
ЭЛЕКТРОННАЯ КОММЕРЦИЯ | |||
БРОНИРОВАНИЕ |
Информацию о поддерживаемых полях каталога бронирований (услуг) см. в этом разделе.
Мы не рекомендуем использовать этот способ, так как он приводит к тому, что состояние ассортимента может оставаться неактуальным до тех пор, пока не будет выполнена следующая операция считывания. Этот способ подходит для небольших компаний, самостоятельно размещающих каталог с использованием общедоступного файла ассортимента. Если вы хотите использовать этот способ, в конфигурации компании необходимо указать функцию catalog_feed_scheduled
(передается с помощью входа для компаний). Если эта функция указана, мы регулярно загружаем ассортимент компании с указанного общедоступного URL-адреса вне зависимости от того, были внесены изменения или нет.
Подробнее о запланированной загрузке ленты.