2016-10-20 14 views
0

私は私のアプリにFacebookのログインを実装しようとしています、グラフの応答がnullであると私はすべてのユーザー情報を取得することはできません、ここに私のコードがあるAndroidのFacebookのログイン統合

public class LoginActivity extends AppCompatActivity { 

CallbackManager callbackManager; 
LoginButton login; 
private String text; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_login_page); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    callbackManager = CallbackManager.Factory.create(); 
    login = (LoginButton)findViewById(R.id.login_button); 
    login.setReadPermissions("public_profile email"); 
    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      if(AccessToken.getCurrentAccessToken() != null){ 
       RequestData(); 
      } 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException exception) { 
     } 
    }); 


     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException exception) { 
     } 
    }); 


} 


public void RequestData(){ 

    GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken() 
      , new GraphRequest.GraphJSONObjectCallback() { 
     @Override 
     public void onCompleted(JSONObject object,GraphResponse response) { 

      JSONObject json = response.getJSONObject(); 
      try { 
       if(json != null){ 
        text = json.getString("id"); 
    Context context=getApplicationContext(); 
    Toast.makeText(context,text,Toast.LENGTH_LONG).show(); 
       } 
    else{ 
    Toast.makeText(context,"empty",Toast.LENGTH_LONG).show(); 
    } 

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

      } 
     } 
    }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "id,name,link,email,picture"); 
    request.setParameters(parameters); 
    request.executeAsync(); 
    Context context=getApplicationContext(); 
    Toast.makeText(context,text,Toast.LENGTH_LONG).show(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

}

トーストメッセージは常に空であり、情報は返されません。私はこれに固執しています

答えて

0

私はボタンからログインマネージャに登録呼び出しを変更しました。

関連する問題