2016-05-02 11 views
0

Ich versuche, nach öffentlichen Elementen mit Facebook4J suchen, ich unterschrift Ich brauche eine AppID UND appSecret, die ich habe, ist die App-Token die diese beiden mit einem Rohrsymbol zwischen ihnen (wie ich verstehe). Ich kann nicht verstehen, warum ich einen OAuthError bekomme, siehe untenstehenden Code und genauen Fehlercode.Facebook4J OAuth scheitert

facebook4j.conf.ConfigurationBuilder fac = new facebook4j.conf.ConfigurationBuilder(); 

    fac.setDebugEnabled(true) 
     .setOAuthAppId("appId") 
     .setOAuthAppSecret("appSecret") 
     .setOAuthPermissions("email,publish_stream"); 
    fac.setOAuthAccessToken(accessToken); 
    FacebookFactory ff = new FacebookFactory(fac.build()); 
    Facebook facebook = ff.getInstance(); 

    ResponseList<JSONObject> results = facebook.search("%whatever"); 

Dies ist der folgende Fehlercode, den ich bekomme. Fehlercode scheint eine unbekannte API zu sein ???

Ausnahme in Thread "Haupt" -Nachricht - Ein unbekannter Fehler ist aufgetreten. Code - 1 Relevante Informationen zur Fehlerbehebung finden Sie auf der Facebook Entwickler Dokument zu finden: https://developers.facebook.com/docs/graph-api/using-graph-api/#errors

FacebookException{statusCode=500, errorType='OAuthException', errorMessage='An unknown error has occurred.', errorCode=1, errorSubcode=-1, version=2.4.2} 
    at facebook4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:179) 
    at facebook4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) 
    at facebook4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89) 
    at facebook4j.FacebookImpl.get(FacebookImpl.java:2742) 
    at facebook4j.FacebookImpl.search(FacebookImpl.java:2337) 
    at facebook4j.FacebookImpl.search(FacebookImpl.java:2332) 
    at Main.facebook4JRequest(Main.java:37) 
    at Main.main(Main.java:15) 

Antwort

1

Versuchen Sie den Code unten verwenden es für mich gearbeitet.

Facebook facebook = new FacebookFactory().getInstance(); 
facebook.setOAuthAppId("XXXXXX", "XXXXXXXXXXXX"); 
String accessTokenString = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
AccessToken at = new AccessToken(accessTokenString); 
facebook.setOAuthAccessToken(at); 

ResponseList<Post> feeds = facebook.getPosts("%whatever", new Reading().limit(80)); 
+0

Ich habe es jetzt funktioniert. Wenn ich das Temp-Access-Token vom Graph-Explorer verwende, erhalte ich eine Menge Daten von einer Suche, obwohl ich, wenn ich das Access-Token verwende, von meiner App-ID und Secret Y bekomme. Wo X> Y für genau dasselbe Suche. Warum? –