我們強烈建議使用其中一種推送方法(批量 API 或一次性摘要上載 API),因為這些方法支援即時更新庫存,並可減少雙方的伺服器負載。此處使用的 access_token
與從企業登入和 Webhook 傳回的憑證相同。
在收到新的安裝 Webhook 後,您必須立即向我們傳送企業的完整庫存。每當企業在您的網站上變更其庫存,您都需要傳送更新。
建議大部分電子商務企業採用此方法。批量 API 是一種標準的 Facebook 目錄 API;對於庫存量較多(多於 100 種商品)和/或經常更新商品的企業來說,此 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 步:對摘要執行一次性上載:
範例:託管在公開位置上的摘要檔案。
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
功能。定義此項目後,我們會定期從指定的公開網址中獲取企業庫存,不受任何更新影響。
進一步了解排程摘要提取。