我们强烈建议使用推送方法中的一种(批处理 API 和 一次性信息库上传 API),因为推送方法可以即时更新库存,并可减少双方的服务器负载。此处使用的 access_token
与业务帐户关联登录和 Webhooks 返回的 access_token 相同。
您必须在收到有关新安装的 Webhooks 通知后,立即向我们发送企业的完整库存。每当企业在您的网站上更改其库存时,您都需要发送更新。
推荐大部分电子商务企业使用此 API。批处理 API 是标准 Facebook 目录 API,对于库存较大(超过 100 种商品)和/或频繁更新商品的企业来说十分有用。
适用于预约(服务)业务。一次性信息库上传 API 是标准 Facebook 目录 API,对于库存较小(约 100 种商品或更少)的企业来说十分有用。
通过此方法,您可以随时在进行更新操作时发送完整的库存,从而完全替换 Facebook 目录中的库存。
第 1 步:通过发送关联的目录编号(来自 Webhooks 通知或 FBE 安装 API 端点)获取在 FBE 安装期间创建的信息库编号:
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 中获取企业库存,无论是否有任何更新。
详细了解定时信息库拉取。