3

socialauth-android を使用して、Android ユーザーが Facebook で自分自身を認証できるようにしています。

私の問題は次のとおりです。

ユーザーが資格情報を入力してアプリを承認できる Facebook のログイン ページを正常に表示できます。認可が完了したら、SocialAuthAdapter にリンクされた ReponseListener のコールバック メソッド onComplete を呼び出す必要があります。

検証コードがnullであるという例外が発生したため、これは決して起こりませんが、Facebookのユーザーページでアプリが承認されていることがわかります。

認証が成功した後、クライアントが次のリクエストに含めることができるように、プロバイダーも検証コードを期待しているようです。

また、このヌル コードがユーザー セッション トークンなのか、それとも何か他のものなのかわかりません。

誰かが同様の問題に遭遇しましたか? それを解決する方法は?

写真に示すように、FacebookアプリをネイティブAndroidアプリとして構成しました **Facebook アプリの構成**

コードの簡略化されたバージョンが示されています。

public class LoginActivity extends Activity {

private static final String LOG_TAG = "LoginActivity";

SocialAuthAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    adapter = new SocialAuthAdapter(new ResponseListener());

            //  [.....]
}
/**
* This method is invoked when the user click on my Facebook button to initiate the
* the authentication process with Facebook
*/
protected void doLogin(){
    adapter.authorize(this, Provider.FACEBOOK);
}

private final class ResponseListener implements DialogListener {

   @Override
   public void onComplete(Bundle values) {

     // Variable to receive message status
     if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
       Log.d(LOG_TAG, "Authentication Successful"); 
     }

     adapter.getUserProfileAsync(new SocialAuthListener<Profile>() {

        @Override
        public void onError(SocialAuthError arg0) {

           Log.e(LOG_TAG, "Cannot retrieve user profile");

        }

        @Override
        public void onExecute(Profile profile) {

           Log.d(LOG_TAG, "ValidatedId = " + profile.getValidatedId()); 

     });

  }

スタックトレースは

Retrieving Access Token in verify response function
Verifying the authentication response from provider
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:114)
at org.brickred.socialauth.oauthstrategy.OAuth2.verifyResponse(OAuth2.java:102)
at  org.brickred.socialauth.provider.FacebookImpl.doVerifyResponse(FacebookImpl.java:164)
at org.brickred.socialauth.provider.FacebookImpl.verifyResponse(FacebookImpl.java:154)
at org.brickred.socialauth.SocialAuthManager.connect(SocialAuthManager.java:183)
at  org.brickred.socialauth.android.SocialAuthDialog$SocialAuthWebViewClient$1.run(SocialAuthDialog.java:243)
at java.lang.Thread.run(Thread.java:856)
org.brickred.socialauth.exception.SocialAuthException: Verification code is null
org.brickred.socialauth.android.SocialAuthError: Unknown Error
4

1 に答える 1