2016-09-25 3 views
0

Я использую API-интерфейс графика и пытаюсь получить список объявлений с их проницательностью и изображениями.Получить объявления и их изображение в том же запросе

Я не хочу делать несколько запросов для этого, так как я быстро ударил «(№17)« Пользовательский предел запроса », даже если я использую пакетные запросы.

Мой текущий запрос выглядит следующим образом:

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

Теперь для того, чтобы получить пост изображение, мне нужно взять его идентификатор, который возвращается и использовать его в другом запросе, чтобы вытащить пост, как это:

/CREATIVE_ID/?fields=object_story_id 

Затем использовать возвращаемый историю идентификатор, чтобы собрать картину, как:

/OBJECT_STORY_ID/?fields=picture 

Есть ли способ объединить эти запросы, чтобы делать меньше запросов?

Что-то вроде:

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

Любая помощь приветствуется. Благодарю.

+0

Иногда нет «креативных», а иногда '/ ' равно нулю. – Nakilon

+0

Да, но означает ли это, что нет возможности комбинировать эти запросы? –

+0

Вы должны иметь хотя бы идентификатор истории в одном и том же вызове 'adcreatives {object_story_id}'. – serg

ответ

0

Facebook Batch API может работать на вас. Он позволяет выполнять несколько вызовов API Графа из одного HTTP-запроса и поддерживает зависимости между этими запросами. Прочтите документацию для получения дополнительной информации, и вот пример поворота звонка о том, как он может работать (Я не выполнял этот вызов, поэтому ознакомьтесь с документацией и тестом 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 в случае указания многих иды «. https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – bjeavons

Смежные вопросы