2012-04-05 3 views
0

Ich benutze Facebook Plugin um sich einzuloggen und einen Benutzer abzumelden, die gut funktionieren. Das Problem ist, wenn ich für die in Benutzerdaten über die Funktion FB.api angemeldet anfordern (‚/ me‘), es gibt immer folgende Fehlermeldung:FB.api ('/ me') gibt immer Fehlercode: 2500 in phonegap android

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

ich den Debug-Modus verwendet PluginResult (pr) zu überprüfen und JSONObject der Antwort. JSONObject enthält die Benutzerinformationen, die ich benötigte, ich bekomme nicht, wo ich falsch mache.

Plz help...... 

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

      } 

Antwort

1

FB.api Methode funktioniert gut für mich, die Benutzerdaten zu erhalten und einen Feed zu dem Facebook, nachdem ich buche Ändern Sie die folgende Methode in ConnectPlugin.java wie folgt.

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

Danke das ist mein Problem gelöst ..... – Aamirkhan

3

Sie Zugriffstoken benötigen mehr Details als grundlegende Benutzerinformationen abzurufen. Überprüfen Sie, ob Sie über das richtige Zugriffs-Token in Debug Tool verfügen und stellen Sie sicher, dass Sie alle Berechtigungen benötigen permission festlegen.

Problem gelöst, nachdem die „Sitzung“ in ‚getResponse‘ Methode in ConnectPlugin Wechsel zu „authResponse“

+0

Vielen Dank für Ihre Antwort, ich habe meine Access-Token in DEBUG TOOL Sie erwähnt, es gibt mir die richtigen Details. Aber in meinem was immer ich tue, gibt es den gleichen Fehler. Kannst du mir sagen woher der "FB.api" meinen Access-Token nimmt? Ich habe versucht, die Benutzerinformationen sofort nach der Anmeldung wie in diesem Link angegeben abrufen, aber wieder der gleiche Fehler auftritt. http://developers.facebook.com/docs/reference/javascript/FB.login/ – seshu450

+0

Überprüfen Sie Berechtigungen auf dieser Seite http://developers.facebook.com/docs/reference/javascript/FB.login/. Sie müssen den korrekten Bereich unter scope definieren: 'email, user_likes'. Derselbe Bereich, den Sie im Debug-Tool definieren. – gauravtechie

+0

Ich tat das auch. Ich werde meinen Code in der Frage veröffentlichen. Bitte lass mich, wenn ich dabei Fehler mache. – seshu450

Verwandte Themen