2009-06-25 4 views
3

facebook java api 2.1.1(http://code.google.com/p/facebook-java-api/)を使用して自分のFacebookアプリケーションに接続したいとします。私のアプリケーションは「デスクトップ」モードになっているので、Webアプリケーションの外部でそれにアクセスできるはずです。私はそれのためのコールバックURLも定義していません。私のコードはこのように見えます。Facebook Java APIのclient.auth_getSession()のパラメータ例外が無効です

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); 

しかし代わりのセッションAPIを返す例外がスローされます:いただきました。このコードで間違って

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) 

誰も私に教えていただけますか?そして、Java API(バージョン2.1.1)を使用して、デスクトップモードでFacebookアプリケーションにアクセスする正しい方法は何ですか。

ありがとうございました。

よろしく ナビールムフタール

答えて

1

私はFBのAPIを理解している限り、ユーザー名とパスワードを手動で入力する必要はありませんが、代わりに手動で入力してから、Facebookログインがアプリケーションにリダイレクトされるようにします。つまり、「電子メール」と「パス」を提供する代わりに、「次へ」と「キャンセル」URLを提供します。

これは純粋にFB APIのセキュリティ機能であり、その背後にある理論は問題ありませんが、実行は最適ではありません。

1

Google Codeのサイトにこのdiscussion threadを参照してください。このスレッドには、デスクトップの認証を行う方法を説明するwikiページへのリンクがあります。

関連する問題