Android 登录错误:将您登录到此应用程序时出错。请稍后再试
我得到了这个错误。当我尝试使用facebook登录到我的应用程序时。 当我第一次验证时,它将正常工作。在我取消安装我的应用程序并尝试登录Facebook之后,我发现了这个错误 另一个问题:在设备1中进行身份验证并尝试在设备2上使用facebook登录后,也会出现相同的错误 我找到的解决方案:当我从Facebook应用程序设置中删除应用程序身份验证时,它在上述场景中工作,但这不是一个好的解决方案,我们如何告诉用户执行此操作Android 登录错误:将您登录到此应用程序时出错。请稍后再试,android,facebook,facebook-graph-api,facebook-login,Android,Facebook,Facebook Graph Api,Facebook Login,我得到了这个错误。当我尝试使用facebook登录到我的应用程序时。 当我第一次验证时,它将正常工作。在我取消安装我的应用程序并尝试登录Facebook之后,我发现了这个错误 另一个问题:在设备1中进行身份验证并尝试在设备2上使用facebook登录后,也会出现相同的错误 我找到的解决方案:当我从Facebook应用程序设置中删除应用程序身份验证时,它在上述场景中工作,但这不是一个好的解决方案,我们如何告诉用户执行此操作 btnFbLogin.setOnClickListener(new Vie
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();
}
}
}
}
});
在Facebook示例中,也有一个问题:
复制步骤:
出现此问题的原因是,您已经通过Facebook对应用程序进行了身份验证,并且您的代码可能在每次使用Facebook时都包含Authenticate(查找并删除) 遵循以下步骤:
@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);
}
}
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();
}
我也面临这个问题。在Facebook上更新你的密钥哈希
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
keytool-exportcert-alias-keystore | openssl sha1-binary | openssl base64
我的Redmi Note 3也有同样的问题。在三星上测试。没问题。不知道它是否是针对Redmi的。我也面临同样的问题。我的keyhash定义得很完美,但仍然面临同样的问题。即使是第一次,我也无法登录 我的问题的解决方案是:
如果所有其他配置都已就位。这是Facebook发布的问题。Facebook团队确认
我们将期望解决方案:在3天内我的问题实际上是哈希键,它无效 我也有同样的问题,很难诊断。原因是Facebook在第一次登录时没有检查哈希键,看起来这个键是正确的,但事实并非如此。其次,错误信息只是一种白痴。第三个是决议:试试下面的链接,它帮助了我 我指的是 或者只需在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) {
}
添加上面的代码来检索密钥,即您可以存储的密钥
在这里。现在它可以工作了
这对我有用,希望对你也有用
或
此命令可能不会为您提供最新的keyhash
keytool-exportcert-alias YOUR_RELEASE_KEY_alias-keystore YOUR_RELEASE_KEY_PATH | openssl sha1-binary | openssl base64
要从android studio搜索中获取最新或活动的密钥哈希,请在应用程序运行并抛出上述错误时,在android studio的Logcat或android监视器中搜索“哈希”。您将获得不同的处于活动状态的keyhash。在控制台设置中粘贴此已搜索的keyhash后,您可以登录到您的应用程序。对于我来说,此错误是由于无效的权限字符串造成的。发生在iOS和Android上。我也面临同样的问题 这对我来说是个错误
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
keytool-exportcert-alias-keystore | openssl sha1-binary | openssl base64
键入此命令时,它会提示
输入密钥库密码:
。我给的是keyPassword
而不是storePassword
,它没有给出任何错误消息,而是生成了一个不同的散列 由于哈希键无效而发生错误
我们可以使用下面的命令创建散列键,并在设置->基本->Android散列键下更新相同的内容
keytool -exportcert -alias ADD_RELEASE_KEY_ALIASE_HERE -keystore ADD_UR_KEYSTORE_PATH_HERE | openssl sha1 -binary | openssl base64
如果需要,可以使用以下命令找到密钥库的Relase Key别名:
keytool -list -keystore ADD_UR_KEYSTORE_PATH_HERE
我也遇到过一个问题,比如使用上面的HashKey,如果我直接将release APK安装到设备上,登录工作正常,但是当我将APK上传到Play Store并从Store安装应用程序时,它会显示相同的登录失败错误。此问题的修复方法如下所示:
我也遇到了同样的问题,我发现我在facebook开发者控制台中生成的哈希键不合适。我试图从不同的电脑生成散列密钥,但它要求我输入特定密钥库的密码,而我的电脑中没有这种情况。因此,请确保在创建散列密钥时,您将被要求输入密钥存储密码,然后将该散列密钥插入facebook开发者控制台 命令
keytool -exportcert -alias TYPE ALIAS HERE -keystore KEY_STORE_FILE_PATH_HERE | openssl sha1 -binary | openssl base64
node -e 'console.log(Buffer.from(process.argv[1].split(":").map(hex => parseInt(hex, 16))).toString("base64"))' '5E:8F:16:06:2E:A3:CD:2C:4A:0D:54:78:76:BA:A6:F3:8C:AB:F6:25'
> btoa('a1:43:d4:27:c8:04:rr:fr:2g:3b:tg:b5:et:c1:4a:1t:fr:f5:54:5f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "g5fGIBgB6noFO9ur78BdEr73KG6="