Facebook提供安全警告:请按照您的密码处理上述URL,不要与任何人分享

我已经整合了Facebook与我的应用程序发布内容。 它正在运行,直到版本1.2的应用程序,但现在我刚刚收到安全警告后login如下。

关于这个安全警告的奇怪的事情是,它适用于我的一个Facebook帐户,没有任何警告,但我得到这个警告与我的另一个帐户。 我附上了这个问题的屏幕截图:

在这里输入图像说明

禁用安全浏览是不值得的,因为我们不能让所有用户禁用安全浏览。

我已经解决了。在这里检查我的答案。 从Facebook安全警告逃脱

花了很长时间在互联网上search这个问题。 最后我得到了答案。

login到Facebook帐户 >转到隐私设置 >点击页面左侧的安全标签 >然后禁用安全浏览

现在重置您的模拟器,然后运行应用程序,再次login它肯定会工作

简单的答案是,如果您使用自己的redirect_uri而不是标准的脸书问题,则可以解决问题。 访问令牌返回时,标准的www.facebook.com/connect/login_success.html页面有一个计时器,它可能会在您的应用程序可以检索访问令牌之前更改URL。

此问题可能会发生与Internet延迟相关的问题。 我们有两个客户在缅甸和英国报告这个问题。 没有其他人的问题。 假设你是这样授权的:

https://www.facebook.com/v2.10/dialog/oauth?client_id=999999999999999&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=user_photos,user_events&display=popup 

对于默认的redirect_uri( https://www.facebook.com/connect/login_success.html ),Facebook会在URL的参数中返回access_token,但该页面的html正文包含两个定时器:

  Success <br/> <b id="warning" style="display: none; color:red"> SECURITY WARNING: Please treat the URL above as you would your password and do not share it with anyone. See the <a href="http://l.facebook.com/l.php?u=xxxxxxx" target="_blank" data-lynx-mode="hover">Facebook Help Center</a> for more information. </b> <script type="text/javascript"> document.domain = 'facebook.com'; if (window == top) { setTimeout(function () { document.getElementById("warning").style.display = "block"; }, 2000); } setTimeout(function () { if (window.history.replaceState) { window.history.replaceState({}, "", "\/connect\/blank.html#_=_"); } }, 2000); </script> 

当任何一个定时器触发时,它将更改删除access_token的URL。 所以只要你发现它发生变化之前,一切都可以正常工作。 在我们的例子中,我们使用Windows下的embedded式浏览器控件并监视导航的链接。 只要代码能够在发生超时之前接收到包含access_token的导航事件,那么一切正常。 我们永远无法确定互联网连接的延迟以及用户的慢速计算机的某种组合是如何引起这个问题的,但是这样做解决了这个问题。

在Facebook应用的Facebooklogin设置中,将您自己的URI添加到有效的OAuthredirectURI列表中。 如果你redirect到你自己的html页面,那么你可以避免Facebook的超时。