2016-06-11 198 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 ...輝煌。我一次得到姓名,電子郵件和身份證,這是我想要的。謝謝。 –