2016-06-11 6 views
1

ログインFacebookアカウントでAndroidのFacebookユーザーIDを取得したい。私は正しい方向でイドを得ることができない。私を案内してください、どうすれば入手できますか? 私のコードはです。ログインしてFacebookのユーザーIDを取得するandroid

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のIDから名前とメールアドレスを取得したいと考えています。あなたのコードは名前または電子メールのいずれかを提供するだけです。一度に名前とメールの両方を取得するにはどうすればよいですか? –

+1

@nabiasarooshあなたが望むものを要求しなければなりません。 parameters.putString( "fields"、 "email、name");名前と電子メールはオブジェクトの一部になります。文字列name = object.optString( "name"); –

+0

waoo ...素晴らしい。私は一度に名前、Eメール、IDを持っています。ありがとうございました。 –

関連する問題