Url rewriting Facebook Connect操作链接-为什么他们要将QueryString参数添加到我们的URL';s
我有一个Facebook连接应用程序(IFrame,外部网站) 当我使用旧的JavaScript API(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
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')