目錄

Facebook Business 擴充功能 (FBE) 使用目錄來獲得企業的庫存。目錄用於支援各種功能,例如動態廣告、專頁商店和專頁服務資訊卡。它是整合工具的選用部分,但對某些功能來說屬必需部分。

Facebook 目錄有自己的一系列 API,但 FBE 會直接與其中幾個 API 整合,讓您能夠輕鬆更新我們平台上的企業庫存,而無需自己追蹤 Facebook 目錄編號。

對於動態廣告和商業使用案例(專頁商店、Instagram 購物和 Marketplace),為了確保正確填充目錄中的所有必填欄位,請參閱支援欄位

更新庫存

您可透過 2 種方式更新庫存:

  • 推送:透過 API 將目錄推送到 Facebook(建議)
  • 提取:讓 Facebook 定期從您的平台中提取目錄(不建議,此方法會導致庫存資料過時,並帶來不必要的伺服器負載)

推送方法

我們強烈建議使用其中一種推送方法(批量 API一次性摘要上載 API),因為這些方法支援即時更新庫存,並可減少雙方的伺服器負載。此處使用的 access_token 與從企業登入Webhook 傳回的憑證相同。

在收到新的安裝 Webhook 後,您必須立即向我們傳送企業的完整庫存。每當企業在您的網站上變更其庫存,您都需要傳送更新。

批量 API

建議大部分電子商務企業採用此方法批量 API 是一種標準的 Facebook 目錄 API;對於庫存量較多(多於 100 種商品)和/或經常更新商品的企業來說,此 API 十分有用。

一次性摘要上載 API

適用於預約(服務)企業。一次性摘要上載 API 是一種標準的 Facebook 目錄 API;對於庫存量較少(約 100 種商品或更少)的企業來說,此 API 十分有用。

透過此方法,您會在每次更新時傳送完整庫存,以完全替換 Facebook 目錄中的庫存。

第 1 步:透過傳送關聯的目錄編號(從 Webhook 通知或我們的 FBE 安裝 API 端點),在安裝 FBE 期間建立摘要編號:

curl -G \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds

進一步了解產品摘要 API

第 2 步:對摘要執行一次性上載:

範例:託管在公開位置上的摘要檔案。

Graph 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 */
      }
    }
);

範例:直接從本機裝置上載摘要檔案。需要根據您的使用案例變更檔案路徑。

Graph 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 功能。定義此項目後,我們會定期從指定的公開網址中獲取企業庫存,不受任何更新影響。

進一步了解排程摘要提取