2012-04-05 12 views
0

facebookプラグインを使用してログインしてログアウトすると、正常に動作しています。私はPluginResultをチェックするために、デバッグモードを使用 FB.api( '/ me')は常にエラーコードを出します:2500 in phonegap android

 {"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500} 

(PR):私は、関数FB.apiを使用してユーザの詳細に記録され(「ME /」)、それは常に次のエラーを与える要求したときに問題がありますレスポンスのJSONObject。 JSONObjectにはユーザー情報が含まれていますが、私は間違っています。

Plz help...... 

MY CODE:

  function login() { 
      FB.login(function(response) { 
       if (response.session) { 
       console.log('Welcome! Fetching your information.... '); 
       FB.api('/me', function(response) { 
        console.log('Good to see you, ' + JSON.stringify(response) + '.'); 
       }); 
       } else { 
       console.log('User cancelled login or did not fully authorize.'); 
       } 
      },{scope: 'email,user_likes'}); 
     } 

     function logout() { 
      FB.logout(function(response) { 
          console.log(localStorage.getItem("user_fb_log_status")); 
          localStorage.setItem("user_fb_log_status","LOGGED_OUT"); 

         alert('logged out'); 
         }); 
     } 

The above code is working fine to login and logout the user. Below is the code i used to get the user details, 

     function me() { 
       FB.api('/me', { fields: 'id, name, picture' }, function(response) { 
        if (response.error) { 
        alert(JSON.stringify(response.error)); 
        } else { 
        var data = document.getElementById('data'); 
        fdata=response.data; 
        console.log("fdata: "+fdata); 
        response.data.forEach(function(item) { 
             var d = document.createElement('div'); 
             d.innerHTML = "<img src="+item.picture+"/>"+item.name; 
             data.appendChild(d); 
             }); 
        } 
        }); 

      } 

答えて

1

FB.apiメソッドが正常に動作している「authResponse」にConnectPluginの「てgetResponse」メソッドに「セッション」を変更した後に解決

問題次のようにConnectPlugin.javaの次のメソッドを変更します。

public JSONObject getResponse() { 
    String response = "{" + "\"status\": \"" 
      + (facebook.isSessionValid() ? "connected" : "unknown") + "\"," 
      + 
      // "\"session\": {" + "\"access_token\": \"" 
      // + facebook.getAccessToken() + "\"," + "\"expires\": \"" 
      // + facebook.getAccessExpires() + "\"," 
      // + "\"session_key\": true," + "\"sig\": \"...\"," 
      // + "\"uid\": \"" + this.userId + "\"" + 

      "\"authResponse\": {" + 

      "\"accessToken\": \"" + facebook.getAccessToken() + "\"," + 

      "\"expiresIn\": \"" + facebook.getAccessExpires() + "\"," + 

      "\"session_key\": true," + 

      "\"sig\": \"...\"," + 

      "\"userId\": \"" + this.userId + "\"" + 

      "}" + "}"; 

    try { 
     return new JSONObject(response); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return new JSONObject(); 
} 
+0

ありがとうございました。私の問題を解決しました..... – Aamirkhan

3

あなたは、基本的なユーザー情報よりも詳細を取得するためのアクセストークンを必要としています。 Debug Toolに正しいアクセストークンがあるかどうかを確認し、必要なアクセス許可がすべてpermissionに設定されていることを確認します。私は、ユーザーの詳細を取得し、私の後にフェイスブックにフィードを投稿するため

+0

あなたの回答に感謝します。DEBUG TOOLで私のアクセストークンをチェックしました。しかし、私のこれまでの何のことでも、同じエラーが出ています。あなたは "FB.api"が私のアクセストークンを取る場所から教えてくれますか?私はこのリンクで与えられたログインの直後にユーザー情報を取得しようとしましたが、同じエラーが再び発生します。 http://developers.facebook.com/docs/reference/javascript/FB.login/ – seshu450

+0

このページのパーミッションを確認してください。http://developers.facebook.com/docs/reference/javascript/FB.login/スコープで正しいスコープを定義する必要があります: 'email、user_likes'。デバッグツールで定義しているのと同じスコープです。 – gauravtechie

+0

私もそれをしました。私は質問に自分のコードを掲示します。 plz私はそれを間違えた場合私をさせてください。 – seshu450

関連する問題