web-dev-qa-db-ja.com

ログインエラー:このアプリケーションへのログイン中にエラーが発生しました。後でもう一度やり直してください

このエラーが発生しています。 Facebookでアプリにサインインしようとすると。初めて認証するとき、正しく機能します。アプリケーションをインストールし、Facebookでサインインしようとすると、このエラーが発生します。

別の問題:device1で認証し、device2でfacebookでログインしようとすると、同じエラーが発生します。

私が見つけた解決策:Facebookアプリ設定からアプリ認証を削除すると、上記のシナリオで動作していますが、これはユーザーに伝える方法としては良い解決策ではありませんこのアクションを行うには?

btnFbLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(accessToken != null) {
                    boolean expires = accessToken.isExpired();
                    if(!expires) {
                        performFbLoginOrSignUp(accessToken);
                    }
                } else {
                    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
                    callbackManager = CallbackManager.Factory.create();

                    if (loginButton != null) {
                        loginButton.setReadPermissions("public_profile", "email", "user_friends");

                        if (CommonUtil.isConnectingToInternet(LoginActivity.this)) {
                            loginButton.performClick();

                            loginButton.setPressed(true);

                            loginButton.invalidate();

                            loginButton.registerCallback(callbackManager, mCallBack);

                            loginButton.setPressed(false);

                            loginButton.invalidate();
                        } 
                    }
                }
            }
        });

Error page

Facebookの例でも問題がある: Facebookの例のGitHubリンク

再現手順

  1. Facebook Authenticate FBプロファイルでアプリログインを起動します。

  2. アプリをアンインストールして、再度インストールします。

  3. 次に、Facebookでログインしてみてください。

  4. 上記のエラーが発生します。すでに認証されているため、fbプロファイルにアクセスする必要があります。しかし、ここで問題に直面しています。
  5. ここでは、すでに認証されたページは表示されていません。
  6. デバイスXiaomi Redmi Note 3でネイティブFBアプリを使用しています
31
Naveen Kumar M

私もこの問題に直面しています。Facebookでキーハッシュを更新してください

8
Lokesh Mehta

このエラーは、無効なハッシュキーが原因で発生します。

以下のコマンドを使用してハッシュキーを作成し、同じ here を[設定]-> [基本]-> Android HashKeys

keytool -exportcert -alias ADD_RELEASE_KEY_ALIASE_HERE -keystore ADD_UR_KEYSTORE_PATH_HERE | openssl sha1 -binary | openssl base64

必要に応じて以下のコマンドを使用して、キーストアのリリースキーエイリアスを見つけることができます。

keytool -list -keystore ADD_UR_KEYSTORE_PATH_HERE

上記のHashKeyを使用することで、リリースAPKをデバイスに直接インストールするとログインが正常に機能するなどの問題も発生しますが、APKをPlayストアにアップロードしてストアからアプリをインストールすると、同じログイン失敗エラーが表示されます。この修正は次のとおりです。

  1. Release Management here に移動します
  2. [リリース管理]-> [アプリの署名]を選択します
  3. 16進形式のSHA1キーを見ることができますアプリ署名証明書。
  4. SHA1を16進形式でコピーし、base64形式に変換します。この link hexのSHA1:部分なしで使用できます。
  5. Facebook開発者コンソールに移動し、「設定」—>「基本」–>「キーハッシュ」にキーを追加します(base 64に変換後)。
9
SumiSadiq

これはFacebookの問題です。 Facebookチームによって確認されました。

enter image description here

解決予定:3日以内

2
Naveen Kumar M

この問題は、Facebookを介してアプリを既に認証しており、コードにFacebookのたびにAuthenticateが含まれている可能性があるために発生します(それを検索して削除します)。

次の手順を実行します:

  1. Facebookの設定に移動します。

  2. アプリを削除します。

  3. Facebook開発者ページにFacebookログインを追加し、クライアントOAuth=ログインを有効にしていることを確認してください。

  4. コードに移動して、コールバックメソッドをオーバーライドします。

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            Intent secondActivityIntent = new Intent(this, RedirectActivity.class);
            startActivity(secondActivityIntent);
        }
    }
    
  5. Oncreateメソッドで、AccessTokenを呼び出します。

    accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(
                AccessToken oldAccessToken,
                AccessToken currentAccessToken) {
            // Set the access token using
            // currentAccessToken when it's loaded or set.
        }
    };
    
    // If the access token is available already assign it.
    accessToken = AccessToken.getCurrentAccessToken();
    
    if (accessToken != null && !accessToken.isExpired())
    {
        GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(JSONObject object, GraphResponse response) {
                if(null != object) {
                    try
                    {
                        Intent i = new Intent(MainActivity.this, Feedback.class);
                        startActivity(i);
                        String email = object.getString("email");
                        String birthday = object.getString("birthday");
    
                    }
                    catch (Exception ex)
                    {
                        Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_SHORT).show();
                    }
                } else {
                    // call your authentication process
    
                }
            }
        });
        Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,birthday,link");
        request.setParameters(parameters);
        request.executeAsync();
    }
    
1

私にとって、この正確なエラーは無効な許可文字列が原因でした。 iOSおよびAndroidで発生しました。

1
Kyle Johnson

私にとっての問題は本当にハッシュキーにあります、それは有効ではありません。

私はまったく同じ問題を抱えていて、診断するのが非常に困難でした。その理由は、Facebookは最初のログイン時にハッシュキーをチェックせず、キーが正しいようですが、実際にはそうではないからです。第二に、エラーメッセージは単なるイディオクラシーです。 3番目は解決策です。次のリンクを試してください。

有効なハッシュキーを生成するためのより良い指示

0
user732456
  1. Facebook(アカウント)のユーザー設定からアプリを削除します。

  2. アプリをアンインストールします。

  3. リリースまたは新しいデバッグキーストアを使用して新しいハッシュを取得します。次のコマンドを使用します。

    keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
    
  4. Facebookダッシュボードに新しいハッシュを追加します。

0
mohamed sakr

私は同じ問題に直面しました。

それは私の側の間違いでした。

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

このコマンドを入力すると、Enter keystore password:keyPasswordの代わりにstorePasswordを指定していましたが、エラーメッセージは表示されず、代わりに別のハッシュが生成されました。

0
Touhidul Islam

私はこれを参照します

https://developers.facebook.com/docs/Android/getting-started

または、キーハッシュを返すonCreate()メソッドに以下のコードを追加します。

 // Add code to print out the key hash
try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.facebook.samples.hellofacebook", 
            PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {

}

キーを保存するために上記のコードを追加します

https://developers.facebook.com/docs/facebook-login/Android

ここに。今では動作します。

それは私のために働いた、あなたにとっても希望が働くだろう。

0
Gaurav Pawar

私は同じ問題に直面していました。キーハッシュを完全に定義しましたが、まだ同じ問題に直面していました。初めてでもログインできませんでした。

私の問題の解決策は:

  1. アプリのダッシュボードに移動します こちら

  2. 左ペインの[製品]タブで、Facebookログインが追加されていることを確認します。そうでない場合は、そこに追加します。

他のすべての構成が整っている場合。それはその後完璧に動作します。

0
Android Mason

Redmi Note 3でも同じ問題が発生しました。Samsungでテストしました。問題はありません。 Redmi固有のものかどうか。

0
Ben Looi

私は同じ問題に直面し、Facebook開発者コンソールに配置するために生成したハッシュキーが適切でないことがわかりました。別のPCからハッシュキーを生成しようとしましたが、PCにはない特定のキーストアのパスワードを入力するように求められました。そのため、ハッシュキーの作成中にキーストアパスワードの入力を求められたことを確認してから、そのハッシュキーをFacebook開発者コンソールに挿入します。

ハッシュキーを生成するコマンド:

keytool -exportcert -alias TYPE ALIAS HERE -keystore KEY_STORE_FILE_PATH_HERE | openssl sha1 -binary | openssl base64
0
apurv thakkar

今日、私のサイトで同じ問題が発生し、古いdefault_graph_version = v3.2を使用していることに気付きました。私はそれを最新のものに変更しました:

default_graph_version = v4.0

今、すべてが再び機能します。試してみる。

0
pdolinaj