经过几个小时,很多阅读,实验和构建,我终于设法登录我的演示facebook应用程序。现在我面临着更大的问题。我无法正常登录。
我为phonegap尝试了2个facebook插件,结果完全一样:
要重现,首先我要使用Facebook登录个人脸谱资料/设置/应用程序/应用程序,我正在删除我正在尝试的应用程序。就我而言,它叫做DemoApp。
我正在移动应用程序中执行以下代码:
function logInOutTest() {
alert('start login status check');
facebookConnectPlugin.getLoginStatus(function (response) {
alert(JSON.stringify(response));
if (response.status === 'connected') {
alert('start log OUT');
facebookConnectPlugin.logout(function () {
alert('log out called');
}, function(error) {
alert(JSON.stringify(error));
});
}
else {
alert('start log IN');
facebookConnectPlugin.login(["public_profile"],
function (userData) {
alert("UserInfo: " + JSON.stringify(userData));
},
function (error) {
alert(JSON.stringify(error));
}
);
}
}, function (error) {
alert('error: ' + JSON.stringify(error));
});
}
logInOutTest - 第一次迭代日志: - 开始登录状态检查 - {status:“unknown”} - 开始登录 - DemoApp屏幕,说明它将收到我的公开个人资料。继续 - UserInfo:{status:“connected,accessToken:valid}
在这个阶段,我已经登录,DemoApp重新出现在我登录Facebook的应用中
logInOutTest - 第二次迭代日志: - 开始登录状态检查 - {status:“connected”,accessToken:仍然有效} - 开始登录OUT - 注销名为
注销调用是在成功回调中。好像我成功退出了,但是DemoApp仍在使用Facebook登录的应用!!!!
logInOutTest - 第3次迭代日志: - 开始登录状态检查 - {status:“unknown”} - 开始登录 - 登录错误:登录此应用程序时出错。请稍后再试
虽然注销后状态已更改为未知,但在从Facebook登录的应用程序中删除DemoApp之前,我无法再次成功登录。
另外在Facebook我有这些选择: 从设备登录 - 是的;客户端OAuth登录 - 是的; Web OAuth登录 - 是的;嵌入式浏览器OAuth登录 - 是的;强制Web OAuth重新认证 - 否;您的应用目前正在上线并向公众开放 - 是的; 应用未提交,因此我没有密钥签署我的apk
我相信,Android平台设置已正确设置,并在Mac上生成正确的密钥哈希(因此没有ssl的Windows问题),在生成时询问我的密码。
我想我看到一条帖子,其中facebook sdk在注销过程中有一些扩展选项,可以强制退出,但我没有看到有可能在两个facebook插件中为phonegap更改它们
答案 0 :(得分:1)
我的问题在以下帖子的facebook页面上解决了
problem with facebook login from android phone
简而言之,密钥哈希无效。如果你从你的个人资料中删除应用程序,那就好奇了,它的工作时间是一次,而不是每次都失败。许多人观察到的这种行为,包括我。您可以在主题中找到更多信息。
请勿按照facebook说明在其网页上生成哈希密钥。他们的工作不够好,或者至少你可以用错误的钥匙结束,即使你完全遵循它们!!!!
这是一种可行的方法:
Generate Key Hash for Facebook for Android platform
所有学分归Andrea Palmate所有。