2016-10-20 6 views
0

난 내 응용 프로그램에 페이스 북의 로그인을 구현하기 위해 노력하고, 그래프 응답이 null로, 내가 어떤 사용자 정보를 얻을 수없는, 여기 내 코드안드로이드 페이스 북 로그인 통합

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); 
} 

}

는 IS 토스트 메시지는 항상 비어 있고 정보가 반환되지 않습니다. 나는이 문제에 갇혀 있습니다.

답변

0

버튼에서 로그인 관리자로 등록 호출을 변경했는데 작동했습니다.

관련 문제