2009-06-25 5 views
3

Ich möchte eine meiner Facebook-Anwendung mit dem Facebook-Java-API 2.1.1 (http://code.google.com/p/facebook-java-api/) verbinden. Meine Anwendung befindet sich im "Desktop" -Modus, daher sollte ich außerhalb einer Webanwendung darauf zugreifen können. Ich habe auch keine Callback-URL dafür definiert. Mein Code sieht ungefähr so ​​aus.ungültige Parameter Ausnahme auf client.auth_getSession() in Facebook Java API

FacebookJsonRestClient client = new FacebookJsonRestClient(FB_APP_API_KEY, FB_APP_SECRET); 
String token = client.auth_createToken(); 
HttpClient http = new HttpClient(); 
http.setParams(new HttpClientParams()); 
http.setState(new HttpState()); 

final String LOGIN = "https://login.facebook.com/login.php"; 

GetMethod get = new GetMethod(LOGIN + "?api_key=" + FB_APP_API_KEY + "&v=1.0&auth_token=" + token); 

http.executeMethod(get); 

PostMethod post = new PostMethod(LOGIN); 
post.addParameter(new NameValuePair("api_key", FB_APP_API_KEY)); 
post.addParameter(new NameValuePair("v", "1.0")); 
post.addParameter(new NameValuePair("auth_token", token)); 
post.addParameter(new NameValuePair("email", "my-email")); 
post.addParameter(new NameValuePair("pass", "my-password")); 

http.executeMethod(post); 

String session = client.auth_getSession(token); 

jedoch stattdessen die Sitzung der Rückkehr der API eine Ausnahme auslöst:

com.google.code.facebookapi.FacebookException: Invalid parameter 
    at com.google.code.facebookapi.FacebookJsonRestClient.parseCallResult(FacebookJsonRestClient.java:354) 
    at com.google.code.facebookapi.ExtensibleClient.callMethod(ExtensibleClient.java:535) 
    at com.google.code.facebookapi.ExtensibleClient.callMethod(ExtensibleClient.java:472) 
    at com.google.code.facebookapi.FacebookJsonRestClient.auth_getSession(FacebookJsonRestClient.java:278) 

Kann jemand bitte sagen Sie mir, was ist falsch mit diesem Code? Und wie ist der richtige Zugang zu einer Facebook-Anwendung im Desktop-Modus mit der Java-API (v. 2.1.1)?

Danke für Ihre Hilfe.

Grüße Nabeel Mukhtar

Antwort

1

Soweit ich FB API zu verstehen, sind Sie nicht Benutzernamen und Passwort manuell bieten soll, sondern die Benutzereingabe manuell lassen und dann die Facebook-Anmeldung erlauben den Benutzer zurück auf Ihre Anwendung zu umleiten. Dies bedeutet, dass anstelle der Bereitstellung „E-Mail“ und „pass“ Sie „next“ und „Abbrechen“ URL angeben: s statt.

Dies ist eine reine Sicherheitsfunktion von FB API und während die Theorie dahinter in Ordnung ist, ist die Ausführung bei weitem nicht optimal.

1

Sehen Sie diese discussion thread auf der Website Google Code. Es gibt einen Link im That-Thread zu einer Wiki-Seite, der erklärt, wie Desktop-Auth zu tun ist.

Verwandte Themen