Facebook iOS Mobile Web JS SDK Error



我们已经让Facebook在我们的主要桌面应用程序上运行,没有任何问题。当我将相同的设置代码添加到我们的移动网站时,我收到了来自JavaScript SDK的错误:

Received message of type object from https://s-static.ak.facebook.com, expected a string

然后,我从这里将设置代码更改为一个精确的副本:https://developers.facebook.com/docs/guides/mobile/web/并且接收到完全相同的消息。

此错误仅在Chrome开发者工具或iOS模拟器中的用户代理为iOS或Android时显示。当它从桌面运行时,我们没有看到此错误。

知道这里发生了什么吗?

感谢:)

恕我直言,我相信博科尼奇的回答没有切中要害。您收到消息的直接原因很可能是javascript postMessage方法。它用于将您的网站与window.openiframe的嵌入式网站返回的对象进行通信。
window.parent.postMessage(message, targetOrigin);

你可能想看看这篇文章,看看它是如何工作的。

根据MDN引用,postMessage方法的第一个参数可以是任何类型。尽管如此,在Gecko 6.0(Firefox 6.0/Thunderbird 6.0/SeaMonkey 2.3)之前,消息参数必须是字符串

我在Chrome 28.0.1500.72(编写此答案时的最新版本)上测试了该方法,它在传递对象时运行良好,但仍会向控制台抛出警告消息。我相信,脸书对将一些丰富的数据作为字符串传递感到不舒服,所以他们将其作为对象传递,根本不在乎警告。或者,由于有一个变通方法(例如JSON.stringify),他们有一个他们不知道的bug。

我也有同样的错误。这不一定是你得到它的原因,但我最终查看了我的iphone模拟器接收到的数据包,这是s-static.ak的错误:

[truncated] <span>Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App&#039;s settings.  It must match the Website URL or Canvas URL, or the domain must be a subdomain of one o

对我来说,错误是在我的设备上,我通过ip地址(192.168.xx等)访问网站,在本地开发中,我有主机将localhost路由到我的facebook应用程序配置中的url。。。因此没有为应用程序配置IP。

Facebook不允许我使用IP地址,所以似乎唯一的选择是测试部署或DNS服务器。希望这能帮到你。

最新更新