2017-11-15 2 views
-1

In meiner Anwendung verwende ich Facebook Login, um auf meine Anwendung zuzugreifen. Mein Problem ist nicht in der Lage, die Benutzerinformationen über Facebook Login erhalten den Nullwert erhalten.
Hier ist mein RückrufAndroid - Fehler beim Abrufen von Benutzerinformationen von Facebook Login

loginbutton.registerCallback(callback, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 

      Profile profile = Profile.getCurrentProfile(); 
      if(profile!=null){ 
      Log.e("User FirstName", profile.getFirstName()); 
     } 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 

     } 


    }); 

Ansonsten funktioniert gut alles.
Kann mir bitte jemand helfen.

Antwort

1

können Sie dieses Profil erhalten, indem async Aufgabe von auf Erfolg von Facebook Login

@Override 
    public void onSuccess(LoginResult result) { 
     fetchProfileDetail(result.getAccessToken()); 

    } 

    public void fetchProfileDetail(final AccessToken fbAccessToken) { 
     GraphRequest request = GraphRequest.newMeRequest(fbAccessToken, new GraphRequest.GraphJSONObjectCallback() { 
      @Override 
      public void onCompleted(JSONObject object, GraphResponse response) { 
       try { 
        JSONObject jsonObject = response.getJSONObject(); 
        String name = jsonObject.optString("first_name"); 
        if(!jsonObject.optString("last_name").isEmpty()){ 
         name+=" "+jsonObject.optString("last_name"); 
        } 
        String fb_id = jsonObject.optString("id"); 
        String emailId = jsonObject.optString("email"); 
        String profileUrl = ""; 
        if (jsonObject.has("picture")) { 
         JSONObject picture = jsonObject.getJSONObject("picture"); 
         JSONObject picData = picture.getJSONObject("data"); 
         profileUrl = picData.optString("url"); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 

       } 
      } 
     }); 

     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,email,name,first_name,last_name,picture.height(300).width(300)"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 
Aufruf
Verwandte Themen