remote_app_id与存储的id - 异常不匹配

VIG*_*ESH 3 android facebook

我正在使用facebook本地登录,我得到了CLOSED_LOGIN_FAILED.

以下是我在DDMS中获得的LogCat,

    02-22 15:16:22.939: E/exception(4583):  is null
    02-22 15:16:22.939: E/session(4583):  is {Session state:OPENING, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:420081348034777}
    02-22 15:16:22.939: E/state(4583):  is OPENING
    02-22 15:16:51.749: E/exception(4583):  is com.facebook.FacebookOperationCanceledException: remote_app_id does not match stored id 
    02-22 15:16:51.749: E/session(4583):  is {Session state:CLOSED_LOGIN_FAILED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:420081348034777}
    02-22 15:16:51.749: E/state(4583):  is CLOSED_LOGIN_FAILED
    02-22 15:16:51.749: E/if logged in is(4583):  true : false
    02-22 15:16:51.749: E/if logged in is(4583):  exception : com.facebook.FacebookOperationCanceledException: remote_app_id does not match stored id 
    02-22 15:16:51.749: E/if logged in(4583):  premissions : []
Run Code Online (Sandbox Code Playgroud)

我得到了keyhash使用

C:\Program Files\Java\jre6\bin>keytool -exportcert -alias androiddebugkey -keystore "c:\documents and settings\Droid 4\.android\debug.keystore" | C:\openssl-0.9.8g_win32\bin\openssl sha1 -binary | C:\openssl-0.9.8g_win32\bin\openssl base64
Run Code Online (Sandbox Code Playgroud)

"c:\documents and settings\Droid 4\.android\debug.keystore"我的密钥库路径在哪里,C:\openssl-0.9.8g_win32\bin\openssl是我的openssl路径

这就是我如何获得通过eclipse和我创建的密钥库使用它的关键,

C:\Program Files\Java\jre6\bin>keytool -exportcert -alias mykeystorename -keystore "D:\Apps\mykeystorepath" | C:\openssl-0.9.8g_win32\bin\openssl sha1 -binary | C:\openssl-0.9.8g_win32\bin\openssl base64
Run Code Online (Sandbox Code Playgroud)

这是我用来获取keyhash的命令,使用我为发布创建的kaystore进行签名.

我不知道我哪里出错了,我已经尝试了所有相关的线程,我没有成功.

提前致谢 .

bmk*_*kay 17

使用这段代码因为更可靠,我尝试了很多版本的openssl但没有成功.

  try {
        PackageInfo info = getPackageManager().getPackageInfo("your.package",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("YOURHASH KEY:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
Run Code Online (Sandbox Code Playgroud)

将其粘贴在onCreate上

  • 经过一天的绝望之后,甚至在我看到这个答案并决定放弃它之后,我发现它确实有效,我感到非常惊讶!肯定地说openssl有问题,或者是我(以及所有其他人)没有得到openssl的用途. (2认同)

Muh*_*bar 6

我也陷入了同样的问题,终于找到了解决方法,错误的Hash Key背后的主要原因是openssl,请从这里下载openssl ,我认为facebook应该在他们的网站上提供openssl的下载链接,以便人们不会陷入这样的问题