Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FB.login()响应不一致_Javascript_Facebook_Login_Response_User Location - Fatal编程技术网

Javascript FB.login()响应不一致

Javascript FB.login()响应不一致,javascript,facebook,login,response,user-location,Javascript,Facebook,Login,Response,User Location,大多数试图登录Facebook的人都没有遇到任何问题,但大约5%试图注册的人却无法做到这一点。我相信这个问题是由于一些人在我从Facebook得到的回复中没有得到某些信息。为什么有些人的回复中没有电子邮件和位置,即使我请求了电子邮件和用户位置权限 我查看了您的javascript,看到了一些您应该检查的内容: 当您初始化javascript SDK时,设置cookie=false和status=false。我见过的大多数例子都是这样的。这可能与您看到的5%异常无关,但我不认为将它们设置为真会有什

大多数试图登录Facebook的人都没有遇到任何问题,但大约5%试图注册的人却无法做到这一点。我相信这个问题是由于一些人在我从Facebook得到的回复中没有得到某些信息。为什么有些人的回复中没有电子邮件和位置,即使我请求了电子邮件和用户位置权限

我查看了您的javascript,看到了一些您应该检查的内容:

当您初始化javascript SDK时,设置cookie=false和status=false。我见过的大多数例子都是这样的。这可能与您看到的5%异常无关,但我不认为将它们设置为真会有什么坏处,这可能会有所帮助。试一试,看看它是否有什么不同

我看到的更大的问题是,您的代码假设已授予权限。您确实需要检查FB.login回调中的响应对象。用户可能尚未登录,并且可能拒绝了某些权限。您需要检查响应对象以查看其中是否有错误

您需要查询权限表(fql)或执行get-to/me/permissions以了解他们授予的权限。如果FB.login callback response对象告诉您什么是被授予的,什么是被拒绝的,那就太好了,但是它没有告诉您

此外,我相信有些情况下,人们没有在Facebook或某个位置注册电子邮件

总而言之:你不能相信你会得到你想要的,你需要检查响应对象并优雅地处理异常,用一条消息重新进行身份验证,指出你为什么要重新提示

另一件您可能要考虑添加的是一个客户端日志记录工具,例如Log4javScript(或者自己滚动),它收集了有关这些异常的更多信息。可能有一种模式,例如某个特定的浏览器无法很好地处理问题