17

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

我正在尝试使用他们的示例代码来解包应该传递给选项卡的签名请求,但是 , $_POST,$_GET并且$_REQUEST总是空的。

确切的代码适用于画布页面,我能够解析签名的请求。

他们最近的公告中有什么我遗漏的吗?

顺便说一句,该应用程序没有发布到市场,我的标签安装在的粉丝页面是私有的。这会有所作为吗?

-赛斯

4

5 回答 5

40

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

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

于 2011-03-10T19:32:21.433 回答
8

本质上,问题在于您的网络服务器在收到请求时正在执行重定向。在您的情况下,它从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,因此没有文件名,但显然需要那个斜杠)。

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

非常令人沮丧;我只花了一个半小时调试为什么我的测试应用程序有效而生产应用程序没有。更糟糕的是,我知道这个答案,只是没有表明这就是问题所在。很烦人!

于 2011-09-02T10:58:48.193 回答
4

我找到了一个解决方案:只需在标签 URL 的末尾添加一个“/”即可。喜欢:“http://domain.us/facebook/tab/”

它对我有用,让我们知道它是否也对你有用!

于 2011-03-31T13:04:41.973 回答
4

谢谢赛斯,我遇到了同样的问题。我可以在应用程序画布页面上获得签名请求,但不能在我的页面选项卡上获得签名请求。为了澄清

  1. 访问 www.facebook.com/developers/
  2. 单击您的应用的编辑设置
  3. 单击 Facebook 集成选项卡
  4. 在选项卡 URL 字段中的页面选项卡部分底部输入您的 facebook 登录页面的 index.php 页面的路径

前任。如果您的页面位于 www.foobar.com/facebook/tab/index.php 您需要输入“tab/index.php”(不带引号)而不仅仅是“tab/”

这几天一直在想办法!

于 2011-03-14T01:55:32.593 回答
0

使用应用程序进行身份验证后,您将获得 signed_request 数据,已通过以下 URL 进行身份验证

于 2012-02-18T04:53:20.040 回答