Single sign on isSessionValid()在安装Facebook本机应用程序时返回否

Single sign on isSessionValid()在安装Facebook本机应用程序时返回否,single-sign-on,facebook-android-sdk,Single Sign On,Facebook Android Sdk,我对使用Facebook SDK for Android的SSO有一个问题。只有在安装本机Facebook应用程序时,才会出现此问题。未安装时,一切正常,特别是: Facebook facebook = new Facebook(APP_ID); facebook.authorize(mActivity, , new DialogListener() { ... }); facebook.isSessionValid(); // returns true 但是当安装本机应用程序时,fa

我对使用Facebook SDK for Android的SSO有一个问题。只有在安装本机Facebook应用程序时,才会出现此问题。未安装时,一切正常,特别是:

Facebook facebook = new Facebook(APP_ID);
facebook.authorize(mActivity, , new DialogListener() {
   ...
});

facebook.isSessionValid(); // returns true
但是当安装本机应用程序时,facebook.isSessionValid仍然返回false,尽管我调用了authorize方法

我应该补充一点,我创建了一个基于Android的本地Facebook应用程序,使用keytool从调试证书生成的hashkey

发生了什么事?

解决了!:

我当然希望这对你也有用。 问题是Windows生成的密钥无效

使用你的应用程序运行此命令:

try {
   PackageInfo info = getPackageManager().getPackageInfo("**YOURPACKAGENAME**", PackageManager.GET_SIGNATURES);
   for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.i("PXR", Base64.encodeBytes(md.digest()));
   }
}
catch (NameNotFoundException e) {}
catch (NoSuchAlgorithmException e) {}
别忘了打棒球

生成的密钥在您的logcat上,用此密钥替换旧密钥

解决方案的主要原因是:

已解决!:

我当然希望这对你也有用。 问题是Windows生成的密钥无效

使用你的应用程序运行此命令:

try {
   PackageInfo info = getPackageManager().getPackageInfo("**YOURPACKAGENAME**", PackageManager.GET_SIGNATURES);
   for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.i("PXR", Base64.encodeBytes(md.digest()));
   }
}
catch (NameNotFoundException e) {}
catch (NoSuchAlgorithmException e) {}
别忘了打棒球

生成的密钥在您的logcat上,用此密钥替换旧密钥

解决方案的主要原因是:

除了利奥写的

您可以这样做日志:

Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
因此,您可以使用ANDROID Base64


参考:

除了Lior写的

您可以这样做日志:

Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
因此,您可以使用ANDROID Base64


参考:

此处相同。你碰巧解决了这个问题吗?在4.0.3和2.3.4上进行了测试。我在这里创建了一个bug报告,但显然他们说它应该可以工作。需要再次阅读文档并找到导致问题的原因。请参阅此处:和此处:。我得到了相同的登录失败:我的logcat中存在无效的_密钥错误,因此这些可能会提供正确的解决方案。此处相同。你碰巧解决了这个问题吗?在4.0.3和2.3.4上进行了测试。我在这里创建了一个bug报告,但显然他们说它应该可以工作。需要再次阅读文档并找到导致问题的原因。请参阅此处:和此处:。我的登录失败了:logcat中存在无效的\u密钥错误,因此这些可能提供了正确的解决方案。很高兴它对您起到了作用:但是,事实证明我以前使用的签名是正确的。我快死了@阿莫克兰·钦蒂尔:奇怪。。。我想知道这个错误还可能是什么。是的!这绝对是我代码中的一个问题,一个非常愚蠢的问题!我使用的是继承,一个onActivityResult覆盖了另一个。因此:facebook.authorizeCallback没有被调用。很高兴它对你有用:然而,事实证明我之前就使用了正确的签名。我快死了@阿莫克兰·钦蒂尔:奇怪。。。我想知道这个错误还可能是什么。是的!这绝对是我代码中的一个问题,一个非常愚蠢的问题!我使用的是继承,一个onActivityResult覆盖了另一个。因此,没有调用facebook.com。