我正在使用 Android 和 facebook-connect 来制作一个简单的应用程序,该应用程序可以发布到用户的墙上。如果未安装官方 Facebook 应用程序,身份验证系统似乎工作正常 - 它打开一个 webview,用户登录,应用程序从那时起工作。但是,如果用户安装了官方应用程序,身份验证代码会打开一个白色屏幕,顶部带有蓝色 facebook 横幅,并带有一个加载弹出对话框。这运行了大约一秒钟,然后直接返回到我的应用程序。但是,没有显示任何权限或登录屏幕,如示例中所示。该应用程序也从未收到过访问 token 。有谁知道出了什么问题?我的登录代码如下:
public void authFb(){
if(!facebook.isSessionValid()) {
facebook.authorize(this, new String[] {"publish_stream", "offline_access"}, new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
“facebook”变量只是一个 Facebook(HASH) 对象。
最佳答案
发生这种情况是因为您在 Facebook 开发者页面中为您的应用提供的哈希键不正确。检查这个question了解操作步骤。
** 唯一的区别是在 shell 中执行的行是这样的:(exportcert 不再有效)
keytool -export -alias androiddebugkey -keystore "C:\locationOfYourDebugKeystoreFile"| openssl sha1-二进制 | openssl base64
对我来说,这是: keytool -export -alias androiddebugkey -keystore "C:\Users\Sean.android\debug.keystore"| openssl sha1-二进制 | openssl base64
希望对你有帮助... 肖恩
关于Android/Facebook - 没有权限/应用程序登录屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882258/