Facebook iframe选项卡签名请求始终为空

Set*_*own 17 facebook facebook-authentication facebook-canvas

我正在开发Facebook应用程序选项卡,并希望使用此处记录的已签名请求包:http: //developers.facebook.com/blog/post/462/

我试图用自己的示例代码解包按理说它是传递给标签的签名的请求,但是$_POST,$_GET$_REQUEST始终都是空.

确切的代码在画布页面上工作,我能够解析签名的请求.

我们最近的公告中有没有遗漏的东西?

顺便说一句,该应用程序未发布到市场,并且我的选项卡安装的粉丝页是私有的.这会有所作为吗?

-Seth

Set*_*own 40

好吧,想通了!在配置应用程序时,我填写了"标签网址"为"标签/"这使标签页的完整网址为" http://www.example.com/myfacebookapp/tab/ "这对我来说很有意义.

显然,Facebook并不喜欢这样.将"选项卡URL"更改为"tab/index.php"后,已签名的请求开始显示在应用程序选项卡中!


Owe*_*ker 8

实质上,问题是您的Web服务器在收到请求时正在执行重定向.在您的情况下,它从http://www.example.com/myfacebookapp/tab/重定向到http://www.example.com/myfacebookapp/tab/index.php ; 在我的情况下,它是从http://www.example.com/myfacebookapp/tab重定向到http://www.example.com/myfacebookapp/tab/(我的应用程序是在.Net MVC中构建的,因此没有文件名,但显然需要落后于斜线.

因此,规范解决方案是确保选项卡URL字段中的路径是实际 URL,而不是Web服务器将重定向到的URL.如果网络服务器必须进行重定向,则通过GET(而不是POST)获取真实页面,并且不signed_request向您的脚本提供postdata.

很沮丧; 我只花了一个半小时调试为什么我的测试应用程序工作而生产者没有.更糟糕的是,我知道这个答案,它只是没有记录这就是问题所在.很烦人!