大多数尝试使用 Facebook 登录的人都没有遇到任何问题,但大约 5% 尝试注册的人无法登录。我相信这个问题是由于有些人在我从 Facebook 收到的回复中没有某些信息。为什么即使我请求了 email 和 user_location 权限,有些人的回复中也没有电子邮件和位置?
问问题
341 次
1 回答
2
我查看了您的 javascript 并看到了您应该检查的几件事:
初始化 javascript SDK 时,您设置 cookie=false 和 status=false。我见过的大多数例子都将这些设置为 true。这可能与您看到的 5% 异常无关,但我不认为将它们设置为 true 会有什么伤害,它可能会有所帮助。试一试,看看它是否有所作为。
我看到的更大问题是您的代码假设已授予权限。您确实需要检查对 FB.login 的回调中的响应对象。用户可能没有登录,他们可能拒绝了某些权限。您需要检查响应对象以查看它是否有错误。
您将需要查询权限表 (fql) 或访问 /me/permissions 以了解他们授予的权限。如果 FB.login 回调响应对象告诉您什么是被授予的还是被拒绝的,那就太好了,但事实并非如此。
此外,我相信有些情况下人们没有在 Facebook 或位置注册的电子邮件。
总结一下:你不能相信你会得到你所要求的,你需要检查响应对象并优雅地处理异常,重新提示进行身份验证,并带有一条指示你为什么重新提示的消息。
您可能要考虑添加的另一件事是客户端日志记录工具,例如 log4javascript(或您自己的),它收集有关这些异常的更多信息。可能存在某种模式,例如特定的浏览器不能很好地处理事情。
于 2012-03-12T15:42:11.003 回答