目录

Facebook Business 扩展程序 (FBE) 使用目录获取企业库存。FBE 可用于支持各种功能,例如动态广告、公共主页店铺和精选服务彩笺。FBE 是集成的可选部分,但对某些功能而言为是必要部分。

Facebook 目录拥有自己的一套 API,但 FBE 可以与其中的几个 API 直接集成,让您能够在我们的平台上轻松更新企业库存(而您无需在本地记录 Facebook 目录编号)。

为确保动态广告和商业用例(公共主页店铺、Instagram 购物和 Marketplace)目录中的所有必要字段都已正确填充,请参阅支持的字段

更新库存

如要更新库存,可采用以下 2 种方法:

  • 推送:通过 API 将目录推送到 Facebook(推荐使用此方法)
  • 拉取:让 Facebook 定期从您的平台拉取目录(不建议使用此方法,因为这样会导致库存过时,并给服务器带来不必要的负载)

推送方法

我们强烈建议使用推送方法中的一种(批处理 API一次性信息库上传 API),因为推送方法可以即时更新库存,并可减少双方的服务器负载。此处使用的 access_token业务帐户关联登录Webhooks 返回的 access_token 相同。

您必须在收到有关新安装的 Webhooks 通知后,立即向我们发送企业的完整库存。每当企业在您的网站上更改其库存时,您都需要发送更新。

批处理 API

推荐大部分电子商务企业使用此 API批处理 API 是标准 Facebook 目录 API,对于库存较大(超过 100 种商品)和/或频繁更新商品的企业来说十分有用。

一次性信息库上传 API

适用于预约(服务)业务。一次性信息库上传 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 步:针对信息库执行一次性上传操作:

示例 — 托管在公共位置的信息库文件。

图谱 API 探索工具
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 */
      }
    }
);

示例 — 直接从本地设备上传信息库文件。您需要根据用例更改文件路径。

图谱 API 探索工具
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 信息库示例

电子商务

电子商务 CSV 示例

电子商务 TSV 示例

电子商务 XML 示例

预约

预约 CSV 示例

预约 TSV 示例

预约 XML 示例

请参阅预约(服务)目录支持的字段

拉取方法

我们不建议使用拉取方法,因为在执行后续拉取操作前,此方法会导致库存过时。但此方法对于库存文件可公开访问且规模较小的自行托管企业来说十分有用。如果您选择对某企业使用此方法,则需要在企业配置中指定通过业务帐户关联登录传入的 catalog_feed_scheduled 功能。完成此定义后,我们将定期从指定的公共 URL 中获取企业库存,无论是否有任何更新。

详细了解定时信息库拉取