2016-06-11 232 views
1

我想通过登录Facebook帐户在android中获取Facebook用户标识。我无法以正确的方式获得Id。请指导我,我怎样才能得到它。 我的代码是。通过登录Facebook帐户获取Facebook用户ID通过Android登录Facebook帐户

public void onSuccess(LoginResult loginResult) { 
        // App code 

GraphRequest.newMeRequest(
     loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
     @Override 
     public void onCompleted(JSONObject object, GraphResponse response) { 
       if (response.getError() != null) { 
       // handle error 
       } else { 
       String name= object.optString("name"); 
       String id = object.optString("id"); 

       Intent i = new Intent(Login.this, MainActivity.class); 
       startActivity(i); 
     } 
    } 

    }).executeAsync(); 
} 

回答

2

您的代码看起来不错,这是我目前使用的代码,也许它有帮助。

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       // App code 
       GraphRequest request = GraphRequest.newMeRequest(
         AccessToken.getCurrentAccessToken(), 
         new GraphRequest.GraphJSONObjectCallback() { 
          @Override 
          public void onCompleted(JSONObject object, GraphResponse response) { 

           String email=object.optString("email"); 
           String id=object.optString("id") 
          } 
         }); 
       Bundle parameters = new Bundle(); 
       parameters.putString("fields", "email"); 
       request.setParameters(parameters); 
       request.executeAsync(); 

      } 
+0

此代码工作正常,但我想从用户的Facebook标识中获取姓名和电子邮件。你的代码只提供一个,无论是姓名还是电子邮件。我怎样才能同时获得姓名和电子邮件? –

+1

@nabiasaroosh你必须提出你想要的东西。 parameters.putString( “田”, “电子邮件,姓名”);那么名称和电子邮件将成为对象的一部分。 String name = object.optString(“name”); –

+0

waoo ...辉煌。我一次得到姓名,电子邮件和身份证,这是我想要的。谢谢。 –

相关问题