分享对话框的帖子不包括查询字符串的深度链接到facebook iframe页面选项卡



我正试图使用标准的Facebook共享按钮,在表单的iframe页面选项卡中共享一个深度链接:

https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here

其中app_data内容是指向我的iframe页面选项卡应用程序内容的深度链接相对路径(例如/path/to/page_that_I_shared_from)。

需要明确的是,我的iframe应用程序页面上有一个"共享"按钮,我正在尝试生成返回该页面的链接以进行共享。

根据共享对话框文档,我将上面的绝对URL放入数据href参数中,当我单击共享按钮时,共享对话框中的URL的形式为:

https://www.facebook.com/sharer/sharer.php?app_id=my_app_id&sdk=joey&u=url_encoded_version _of_the_absolute_url_above&显示=弹出

但是当呈现post时,查询字符串会被完全剥离。

请注意,如果我使用非Facebook URL,则会保留查询字符串。

我确实注意到共享对话框URL中的app_id参数——也许这是来自页面选项卡iframe内部的事实造成了不同。

使用提要对话框进行的初始测试看起来很有希望,但我希望使用共享按钮,因为它为帖子的目的地提供了更大的灵活性。

最终的解决方案是生成这样的链接:

https://www.facebook.com/pages/<page id>/<page id>?id=<page_id>&amp;sk=app_<FB_app_ id>&amp;app_data=<deep link>

其中deep_link是一个相对URL,其查询字符串以"?"开头并且具有'&'字符替换为"|"字符(我在输入时解码的穷人编码)。

我看到了几个建议(主要是在SO上),对app_data URL进行两次甚至三次编码——这些都不起作用,而且通常会导致sharer.php脚本无法发布链接。

最新更新