0

안드로이드 앱에 Facebook AccountKit을 사용하려고합니다. 나는 SMS를 통해 확인 코드를 얻고 난 그 코드를 입력 MainActivity 열됩니다 때왜 Facebook 계정을 가져오고 있습니까? AccountKitError : 400 : 내부 일관성 오류가 발생했습니다. 406 : 액세스 토큰이 없습니다. 계정을 검색 할 수 없습니다.

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == APP_REQUEST_CODE) { // confirm that this response matches your request 
      AccountKitLoginResult loginResult = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY); 
      String toastMessage; 
      if (loginResult.getError() != null) { 
       toastMessage = loginResult.getError().getErrorType().getMessage(); 
      } else if (loginResult.wasCancelled()) { 
       toastMessage = "Login Cancelled"; 
      } else { 
       if (loginResult.getAccessToken() != null) { 
        toastMessage = "Success:" + loginResult.getAccessToken().getAccountId(); 
       } else { 
        toastMessage = String.format(
          "Success: ", 
          loginResult.getAuthorizationCode()); 
       } 

       // If you have an authorization code, retrieve it from 
       // loginResult.getAuthorizationCode() 
       // and pass it to your server and exchange it for an access token. 

       // Success! Start your next activity... 
       Intent intent = new Intent(SignUpActivity.this, MainActivity.class); 
       startActivity(intent); 
      } 

      // Surface the result to your user in an appropriate way. 
      Toast.makeText(
        this, 
        toastMessage, 
        Toast.LENGTH_LONG) 
        .show(); 
     } 
    } 

모든이 시점에 잘 일어나고 :

loginPhoneNumber.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       phoneLogin(view); 
      } 
     }); 

    public void phoneLogin(final View view) { 
      final Intent intent = new Intent(getBaseContext(), AccountKitActivity.class); 
      AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = 
        new AccountKitConfiguration.AccountKitConfigurationBuilder(
          LoginType.PHONE, 
          AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN 
      // ... perform additional configuration ... 
      intent.putExtra(
        AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, 
        configurationBuilder.build()); 
      startActivityForResult(intent, APP_REQUEST_CODE); 
     } 

여기 onActivityResult()입니다 : 여기

내 코드입니다 성공 축배가 나타납니다. accessToken가 null로, 그 날이 오류주는 무슨 일이 일어나고 있는지 경우

com.facebook.accountkit.AccessToken accessToken = AccountKit.getCurrentAccessToken(); 

     if (accessToken != null) { 
      //Handle Returning User 
      Toast.makeText(getBaseContext(), "Hello", Toast.LENGTH_SHORT).show(); 
     } else { 
      //Handle new or logged out user 
      Intent intent = new Intent(MainActivity.this, SignUpActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
      startActivity(intent); 
      Toast.makeText(getBaseContext(), "sent from 1", Toast.LENGTH_SHORT).show(); 
     } 

가입 화면으로 다시 탐색 : com.facebook.accountkit.internal.LoginManager: No access token: cannot retrieve account를이 또한 인쇄지고

하지만 내 MainActivity에서

, 나는이 코드를 사용하고 로그 캣 아웃 : AccountKitError: 400: An internal consistency error has occurred: 406: No access token: cannot retrieve account

여기에 무슨 문제가 있습니까? 여기에 accessToken을 가져올 수없는 이유는 무엇입니까?

답변

0

당신이 계정 키트에 액세스 토큰을 사용하려는 경우, 당신은 구성 빌드를 사용 AccountKitActivity.ResponseType.TOKEN하지 AccountKitActivity.ResponseType.CODE

을 변경할 수 있습니다
관련 문제