Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url rewriting Facebook Connect操作链接-为什么他们要将QueryString参数添加到我们的URL';s_Url Rewriting_Facebook_Actionlink - Fatal编程技术网

Url rewriting Facebook Connect操作链接-为什么他们要将QueryString参数添加到我们的URL';s

Url rewriting Facebook Connect操作链接-为什么他们要将QueryString参数添加到我们的URL';s,url-rewriting,facebook,actionlink,Url Rewriting,Facebook,Actionlink,我有一个Facebook连接应用程序(IFrame,外部网站) 当我使用旧的JavaScript API(FB.Connect.streamPublish)发布到用户的墙上时,我会像许多人一样指定操作链接 以下是我的操作链接的JSON: [{ 'text':'Do something on my site', 'href':'http://www.mysite.com/somerestfulpath' }] 现在,我们在我的网站上使用URL重写,所以URL都是好的和RESTful的(即no.A

我有一个Facebook连接应用程序(IFrame,外部网站)

当我使用旧的JavaScript API(
FB.Connect.streamPublish
)发布到用户的墙上时,我会像许多人一样指定操作链接

以下是我的操作链接的JSON:

[{ 'text':'Do something on my site', 'href':'http://www.mysite.com/somerestfulpath' }]
现在,我们在我的网站上使用URL重写,所以URL都是好的和RESTful的(即no.ASPX)

现在,出于某种原因,在用户的墙上渲染出来的链接是:

当然这是404'ing

对于所有Facebook应用程序(不仅仅是我的应用程序),Facebook都会自动将ref=nf附加到URL中

对于文章的其他部分(链接、图片等),他们不会这样做

因此,我唯一能做的就是更改指向非RESTful URL的链接:

然后它将呈现:

这很有效

但是WTF,他们为什么要这么做?他们能不能给那些进行URL重写的应用程序一个选项,让它们不提供这种服务

我希望保持URL的干净和重写

编辑:

糟糕的是,URL重写器上的正则表达式规则不正确。烧坏。

PEBKAC(键盘和椅子之间存在问题)

我对这个特定页面的正则表达式规则不够简单

对任何关心我的人来说,这就是我所拥有的:

<rewrite url="^~/somepage$" to="~/Pages/SomePage.aspx" processing="stop" />
所以在所有页面上,Facebook都在寻找与路径相关的文件

它必须是:

FB.Init('myapikey', '/xd_receiver.htm')

永远不要忘记“/”。=)

我认为你需要研究你的url重写规则,它们应该能够处理url参数。是的,你是对的,我刚刚看了正则表达式。我的坏=)
FB.Init('myapikey', 'xd_receiver.htm')
FB.Init('myapikey', '/xd_receiver.htm')