Как объединить расширения полей Graph API?

При использовании этого синтаксиса для запроса нескольких показателей

https://graph.facebook.com/v2.4/69999732748?fields=insights.metric(page_fan_adds_unique,page_fan_adds,page_fan_adds_by_paid_non_paid_unique)&access_token=XYZ&period=day&since=2015-08-12&until=2015-08-13

Я всегда получаю данные за последние три дня относительно значений значений с и до тех пор, пока параметры

https://graph.facebook.com/v2.4/69999732748/insights/page_fan_adds_unique?period=day&access_token=XYZ&since=2015-09-10&until=2015-09-11

Если я запрашиваю одну метрику, тогда действуют параметры даты.

Существует ли другой синтаксис для запроса нескольких показателей оценки, которые будут принимать параметры даты?

Ответ 1

Я думаю, что это должно сработать:

curl -G \
-d "access_token=PAGE_TOKEN" \
-d "fields=insights.metric(page_fan_adds_unique,page_fan_adds,page_fan_adds_by_paid_non_paid_unique).since(2015-08-12).until(2015-08-13).period(day)" \
-d "pretty=1" \
"https://graph.facebook.com/v2.4/me"

Вы запрашиваете страницу insights в качестве поля. Это поле содержит список результатов в массиве data (insights.data), и вы хотите отфильтровать этот массив.

Способ сделать это, привязывая параметризации к запрашиваемому полю insights, например:

fields=insights
  .filter1(params)
  .filter2(params)
  .filter3(params)

Каждый .filterX(params) будет применен к конкретному полю, которое предшествует ему.
Я добавил новые строки и отступы для ясности, но в вашем фактическом запросе вы связали их все в одной строке без пробелов.