Facebook iOS Mobile Web JS SDK错误
我们已经让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时显示。 当它从桌面运行时,我们没有看到此错误。
知道这里发生了什么吗?
谢谢 :)
我有同样的错误。 这不一定是你得到它的原因,但我最终看到我的iphone模拟器收到的数据包,这是来自s-statick.ak的错误:
[truncated] Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App'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服务器。 希望这可以帮助你。
尽管如此,我相信bokonic的答案忽略了这一点。 您收到的消息的直接原因很可能是javascript postMessage
方法。 它用于通过window.open
或iframe
的嵌入式网站返回的对象来传达您的网站。
window.parent.postMessage(message, targetOrigin);
您可能希望查看本文以了解它的工作原理。
根据MDN引用 , postMessage
方法的第一个参数可以是任何类型。 仍然, 在Gecko 6.0之前(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3),message参数必须是一个字符串 。
我在Chrome 28.0.1500.72(编写此答案时的最新版本)上测试了该方法,它在传递对象时工作正常,但仍然向控制台发出警告消息。 我认为facebook将一些丰富的数据作为字符串传递给他们感到不舒服,所以他们将它作为一个对象传递,并且根本不关心警告。 或者,由于有一个解决方法(例如JSON.stringify
),他们有一个他们不知道的错误。
- NSUserDefaults和KVO问题
- 为什么每次选择另一个TextField时都会调用UIKeyboardWillShowNotification?
- 从设备上删除应用程序后,无法创buildNIL模型的NSPersistentStoreCoordinator
- 我们可以在Today- Widget-Extension中共享App类吗?
- 是否有可能在iOS应用程序中运行XCTesttesting?
- 如何处理在自定义Tableview单元格iOS中最喜欢的button点击?
- 3次后打开应用程序显示uialertview?
- Firebase不能观察,直到访问一次
- 如何插入数组值以根据long / lat值绘制多边形 – Google Maps iOS?