2016-09-25 26 views
0

我在使用圖表API並嘗試獲取包含他們的見解和發佈圖片的廣告列表。在同一查詢中獲取廣告及其圖片

我不想爲此做多個查詢,因爲即使在使用批量查詢時,我也很快達到了「(#17)用戶請求達到的限制」問題。

我當前的查詢看起來是這樣的:

/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative 

現在,爲了得到這個職位的形象,我需要返回的廣告ID,而在另一個查詢中使用它拉後是這樣的:

/CREATIVE_ID/?fields=object_story_id 

然後使用返回的故事ID拉圖所示:

/OBJECT_STORY_ID/?fields=picture 

有什麼辦法可以將這些查詢結合起來做更少的請求嗎?

喜歡的東西:

/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative{object_story_id{picture}}' 

任何幫助表示讚賞。謝謝。

+0

有時沒有'creative',有時'/ '爲零。 – Nakilon

+0

是的,但這是否意味着沒有辦法將這些請求合併? –

+0

您應該至少可以在同一個調用'adcreatives {object_story_id}'中獲取故事標識。 – serg

回答

0

Facebook的Batch API可能適合你。它允許從一個HTTP請求中創建多個Graph API調用,並支持這些請求之間的依賴關係。閱讀文檔以獲取詳細信息,這裏有一個示例如何調用可能的工作(我沒有執行此調用,因此請根據API文檔和測試進行檢查)。

curl \ 
-F 'access_token=...' \ 
-F 'batch=[ 
    { 
    "method":"GET", 
    "name":"ads", 
    "relative_url":"/ACCOUNT_ID_HERE/ads?fields=insights{cpc,reach,spend,clicks,ctr},status,creative", 
    }, 
    { 
    "method":"GET", 
    "name":"creative", 
    "relative_url":"/{result=ads:$.data.*.creative}/?fields=object_story_id" 
    }, 
    { 
    "method":"GET", 
    "relative_url":"/{result=creative:$.data.*.object_story_id}/?fields=picture" 
    } 
]' \ 
https://graph.facebook.com 
+0

感謝@bjeavons的幫助,但正如我的問題所述,我已經在使用批次,並且導致我達到此限制。我想這批中的每個請求都是一次計算的。 –

+0

啊,我誤解了這個方法也是對你的限制。是的,批次中的每個請求都被認爲是一個請求 - 「您也可以使用批處理API批量處理請求,但請注意,每個子請求都是自己的API調用,或者在指定多個API請求時IDS「。 https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – bjeavons