2015-09-16 8 views
10

Wenn diese Syntax mit mehreren MetrikenWie können Graph API-Felderweiterungen kombiniert werden?

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

ich immer bekommen, Daten für die letzten drei Tage regardness der Werte der seit und bis Parameter

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

Wenn ich die Abfrage fragen Für eine einzelne Metrik sind die Datumsparameter wirksam.

Gibt es eine andere Syntax für die Anforderung mehrerer Insights-Metriken, die die Datumsparameter akzeptieren?

+0

Dieser erste API-Aufruf sieht nicht richtig für mich aus: Sie sollten "Einblicke" als Graph-API-Kante und nicht als Feld verwenden (was Sie gerade tun). Bitte prüfen Sie, ob dies auch zu anderen Ergebnissen führt. – derabbink

+0

Meine Abfrage funktioniert gut - neben dem Ignorieren des Datums. Ich benutze das insights.metrics() -Muster, um mehr als eine Erkenntnismetrik abzufragen. –

Antwort

4

ich denke, das sollte funktionieren:

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" 

Sie fordern die Seite insights als ein Feld. Dieses Feld enthält eine Ergebnisliste in einem Array data (insights.data), und Sie möchten dieses Array filtern.

Die Art und Weise zu tun, die von Parametrisierungen auf die angeforderte insights Feld wie so Verkettungs:

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

Jeder .filterX(params) wird angewendet auf die jeweilige Feld, das es vorangeht.
Ich habe Zeilenumbrüche und Einrückungen zur besseren Übersicht hinzugefügt, aber in Ihrer tatsächlichen Anfrage würden Sie alle in einer einzigen Zeile ohne Leerzeichen verketten.

+0

Cool! Wo würde ich das dokumentiert finden? –

+0

Eine Sache, die ich noch zu klären versuche, ist, gibt es irgendwelche Vorteile/Nachteile beim Vergleich dieser beiden Ansätze, um Einsichten zu erhalten .../fields = insights.metric (page_fan_adds_unique, page_fan_adds) .since (2015-08-12) .bis (2015.08.13) .period (Tag) vs .../Erkenntnisse/page_fan_adds_unique, page_fan_adds? period = Tag & da = 2015.09.12 & until = 2015.09.13 ich weiß, dass mit dem ersten, dass ich zusätzliche Felder ohne Einblicke anfordern könnte. Aber wenn ich nur Einsichten bekomme, gibt es wirklich einen Unterschied? –

+0

Dies ist nicht dokumentiert und wird daher nicht unterstützt. Der Vorteil von Ersterem ist, dass Sie so lange, wie dies funktioniert, alle Einsichten mit einer einzigen Anfrage erhalten können, ohne dass Sie eine Batch-Anfrage verwenden müssen. Der Vorteil von letzterem ist, dass es offiziell unterstützt wird, wenn es also kaputt geht, kann man einen Fehler mit Facebook einreichen. Ich hatte die Idee, dies beim Lesen von ["Using the Graph API"] (https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5) zu versuchen. – derabbink

Verwandte Themen