Facebook iOS移动Web JS SDK错误

Facebook iOS移动Web JS SDK错误,ios,facebook-javascript-sdk,Ios,Facebook Javascript Sdk,我们已经让Facebook在我们的主桌面应用程序上运行,没有任何问题。当我将相同的设置代码添加到我们的移动站点时,我从JavaScript SDK收到一个错误: 从接收到对象类型的消息https://s-static.ak.facebook.com,应为字符串 然后,我从这里将设置代码更改为完全相同的副本:并收到完全相同的消息 此错误仅在Chrome Developer Tools或iOS模拟器中的用户代理为iOS或Android时显示。当它从桌面运行时,我们没有看到这个错误 知道这是怎么回事吗

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

从接收到对象类型的消息https://s-static.ak.facebook.com,应为字符串

然后,我从这里将设置代码更改为完全相同的副本:并收到完全相同的消息

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

知道这是怎么回事吗


谢谢:)

我也犯了同样的错误。这不一定是你得到它的原因,但我最终看到了iphone模拟器接收到的数据包,下面是s-statick.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
[truncated]应用程序配置不允许给定URL。示例:应用程序不允许一个或多个给定URL';s设置。它必须匹配网站URL或画布URL,或者域必须是一个o的子域
对我来说,错误在于,在我的设备上,我通过ip地址(192.168.xx等)访问该站点,在本地开发中,我有主机将localhost路由到我的facebook应用程序配置中的url。。。因此,没有为应用程序配置IP


Facebook不允许我使用IP地址,所以看起来唯一的选择是测试部署或DNS服务器。希望这对你有所帮助。

恕我直言,我相信博科尼奇的回答没有抓住重点。您收到消息的直接原因很可能是javascript
postMessage
方法。它用于将您的网站与
窗口返回的对象进行通信。打开
iframe
的嵌入式网站

window.parent.postMessage(message, targetOrigin);
您可能想看看它是如何工作的

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


我在Chrome 28.0.1500.72(编写此答案时的最新版本)上测试了该方法,它在传递对象时工作正常,但仍会向控制台抛出警告消息。我相信facebook对以字符串形式传递一些丰富的数据感到不舒服,因此他们将其作为对象传递,而根本不关心警告。或者,因为有一个解决方法(例如,
JSON.stringify
),他们有一个他们不知道的bug。

这很有道理,我应该考虑一下。谢谢你的帮助。看起来是正确的,但实际上警告消息来自facebook sdk本身,它不是浏览器或任何东西的一部分,它是facebook sdk的一部分。(这可以通过控制台输出源上的断点得到证实)如果你的应用程序碰巧使用postMessage做任何事情,这真的很烦人,因为facebook会很高兴地向控制台发送一百万条“警告”消息,这些消息都不是为它准备的。我认为这是更正确的答案。警告的出现是因为window.postMessage方法。我在这里得到了相同的警告,但不是因为emulator。我使用了额外的postMessage,fbsdk也在监听消息&因为我发送了一个对象,所以抛出了错误!