我們強烈建議使用其中一種推送方法(批次 API 或一次性摘要上傳 API),因為這種方法可以即時更新庫存,並減少兩端的伺服器負載。本文所使用的 access_token
與商家登入和 Webhook 傳回的結果相同。
一旦收到新的 Webhook 安裝通知,請務必盡快將商家的完整庫存傳送給我們。此外,每當商家在您的網站上變更庫存時,您就必須傳送更新內容。
建議大多數的電子商務類商家使用。批次 API 是標準 Facebook 目錄 API,適用於庫存量大(超過 100 項商品)和/或經常更新商品的商家。
適用於預約(服務)類商家。一次性摘要上傳 API 是標準 Facebook 目錄 API,適用於庫存量較少(不超過 100 項商品)的商家。
透過這種方法,您可以隨時在更新時傳送完整的庫存,如此會完整取代 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:執行一次性上傳至摘要:
範例 — 託管於公開位置的摘要檔案。
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
功能。定義完成後,無論是否有任何更新,我們都會定期從指定的公開網址擷取商家庫存。
深入瞭解排定的摘要提取。