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