Facebook c#客户端在授权过程中出现脚本错误

本文关键字:脚本错误 过程中 授权 客户端 Facebook | 更新日期: 2023-09-27 18:22:10

我有一个使用MS的Facebook库的c#客户端应用程序,它已经运行了一段时间(这个特殊的表单上次更改是在5月6日,在上周的最后一个测试周期中运行)。这是在一个kiosk应用程序中(幸运的是,该应用程序仍在开发中),它有一个嵌入式网络浏览器,因此用户可以对我们的应用程序进行身份验证和授权。今天,当你点击授权页面上的任一按钮时,我开始看到脚本错误弹出窗口。

所以我去登录页面,用户验证,一切都很好,然后它去授权页面"想代表你私下发布",仍然很好,然而,当你点击OK或跳过时,会弹出一个弹出窗口,上面写着

An error has occurred in the script on this page
Line: 5
Character: 878
Error: "Access is denied."
URL: https://static.xx.fbcdn.net/rsrc.php/v2/yG/r/q0zNT1kK_7g.js.  

现在弹出窗口有正常的"Do you want continue running scripts on this page"是/否选项,但它又被卡住了。单击"是"或"否",无所谓,弹出窗口不断弹出,我必须手动终止该过程。

我没有更改我的代码,但在查看"中断更改"列表并启用该列表时,我可能更改了一些应用程序设置,但如果是这样,我不确定我能做些什么来中断它。我已经回到过去,玩了一些设置,但没有明显的效果。

这个问题的另一个令人沮丧的方面是,由于我从未真正完成oauth过程,因此我从未获得访问令牌。然而,有些事情很棘手,它认为用户仍然登录。由于我没有访问令牌,我无法将他们注销,所以现在每次我进入登录页面时,它都会直接进入授权页面。显然,如果我能克服脚本错误,我就可以获得我的令牌并将用户注销。

任何建议都会很有帮助。

编辑:我把URL转到Chrome浏览器,它运行得很好,所以我抓取了有问题的.js来查找有问题的代码。问题是"window.resizeBy(w,x)",一些快速搜索看起来IE可能有意屏蔽了它(至少在旧版本中,当我在IE 10真实浏览器中尝试它时,它也起作用)。有趣的是,在Chrome(但不是IE)中,当它第一次进入授权屏幕时,我得到了以下消息:

您正在大型浏览器窗口中使用"弹出"显示类型,或者选项卡。为了获得更好的用户体验,请使用JavaScript SDK,而不指定显式显示类型。SDK将为每个环境选择最佳的显示类型。或者,在window.open()调用上设置高度和宽度以适当调整对话框,如果您有特殊要求,无法使用SDK。此消息仅对应用程序的开发人员可见。

这让我想知道:如果我能想出如何在嵌入式浏览器中获取window.open,如果我能按照建议明确设置大小,它会跳过这个导致问题的大小调整吗。去做更多的研究。

Facebook c#客户端在授权过程中出现脚本错误

好吧,所以花在Chrome上的时间(和往常一样)比任何其他浏览器都更有价值。由于这是使用MS的Facebook客户端,而不是JS SDK,因此没有简单的方法可以访问window.open。Chrome中的消息给出的另一个关键是我们使用的是类型"popup"。将其更改为"page"类型,不再出现脚本错误。授权显示在他们自己的JS弹出窗口中,这应该没问题。