2016-08-30 1 views
0

Ich muss einen automatisierten Prozess zum Abrufen meiner Facebook-Seiteneinblicke entwickeln. Da das für die Authentifizierung verwendete Zugriffstoken temporärer Natur ist. Daher habe ich eine Facebook-App erstellt und mit allen erforderlichen Berechtigungen einen Seitenzugriffstoken erstellt, um die Lebensdauer zu verlängern. Referenz-Link: Java + RestFB API: Getting fresh Page Access Token without messing with AppID, appSecretIch kann keine Facebook Page Insights mit Seitenzugriffstoken in RestFB finden.

Das folgende ist mein Stück Code:

FacebookClient fb=new DefaultFacebookClient(accesstoken,Version.VERSION_2_7); 
    Connection<Insight> insights =fb.fetchConnection("119456244790112/insights", Insight.class,Parameter.with("since", "2016-08-01"),Parameter.with("until", "2016-08-27")); 
    for (Insight insight : insights.getData()) 
      if(insight.getName().equals("page_impressions") && (insight.getPeriod().equals("day"))) 
       System.out.println(insight.getName()+"\t"+insight.getPeriod()+"\t"+insight.getValues()); 

'accesstoken' ist die kurzlebige Seite accesstoken durch Befolgen der genannten Verbindung erhalten.

Das Folgende ist die Ausnahme-Stack Ich erhalte:

Exception in thread "main" com.restfb.exception.FacebookOAuthException: Empfangene Facebook Fehler Antwort vom Typ OAuthException: Ungültige Abfrage (Code 3001 , Subcode 1.504.028) bei com.restfb.DefaultFacebookClient $ DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage (DefaultFacebookClient.java:1191) bei com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary (DefaultFacebookClient.java:1117) ein t com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse (DefaultFacebookClient.java:1058) bei com.restfb.DefaultFacebookClient.makeRequest (DefaultFacebookClient.java:969) bei com.restfb.DefaultFacebookClient.makeRequest (DefaultFacebookClient.java:931) bei com.restfb.DefaultFacebookClient.fetchConnection (DefaultFacebookClient.java:356) bei Main.main (Main.java:31)

Bitte helfen sie mir die Seite Insights finden Verwendung Seite Zugriffstoken und somit erstreckt es ist Lebensdauer, so dass ich daraus einen automatisierten Prozess erstellen konnte. Vielen Dank !

Antwort

0

Sie haben zwei Fragen in einem gestellt.

  1. Erweiterung eines Zugriffstoken: Zuerst müssen Sie den Benutzerzugriffstoken. Dann erweitern Sie es (überprüfen Sie das RestFB-Handbuch: http://restfb.com/documentation/#access-token-extend) und nehmen Sie das Seitenzugriffstoken für die Seite von/me/accounts. Das Seitenzugriffstoken hat eine unbegrenzte Lebensdauer.

  2. Die OAuthException: Wenn Sie die Fehlermeldung der Ausnahme betrachten, sollten Sie sehen, dass die Metrik fehlt. Sie müssen Facebook mitteilen, welche Metrik Sie erhalten möchten. Überprüfen Sie die Grafik-API-Referenz für gültige Kennzahlen: https://developers.facebook.com/docs/graph-api/reference/v2.7/insights

+0

Vielen Dank für diesen Blick. In meinem Frageteil habe ich nur erwähnt, dass ich den "Page Access Token" erhalten habe. Das gleiche Stück Code funktioniert wunderbar, wenn es mit einem temporären "User Access Token" verwendet wird und gibt alle verfügbaren Insights zurück. Wenn Sie Facebook mitteilen müssen, welchen Metrik-Wert ich haben möchte, können Sie mir bitte den erforderlichen Code (Frageteil) zukommen lassen, damit ich mein Problem lösen kann. Ich werde dir dafür verpflichtet sein. –

0

Endlich habe ich den Erfolg der Seite Insights Daten ziehen die ‚Seite Zugriffstoken‘ mit erweiterter Lebensdauer verwenden.

Im Folgenden ist das Snippet für die entsprechenden Anforderungen an Facebook zu machen:

Connection<Insight> insights =fbclient.fetchConnection("1388062484542431/insights/page_views/day", Insight.class,Parameter.with("since", "2016-08-01"),Parameter.with("until", "2016-08-30")); 

Wenn mehrere Metriken müssen übergeben werden, dann können wir dies tun, indem durch Kommata getrennte Namen der erforderlichen Metrics übergeben.

Danke.

Verwandte Themen