2

我在粉丝页面上的 facebook 选项卡中加载了 iframe,但我无法访问 $_REQUEST["signed_request"] 对象。我很困惑,因为这应该是免费赠品且易于访问。我已经阅读并重新阅读了 facebook 文档并重新检查了我的 facebook 应用程序设置,但没有任何效果。

isset($_REQUEST['signed_request']

总是假的。由于我使用的是 Facebook PHP sdk,我也尝试过

$facebook->getSignedRequest();

我已经在 $_REQUEST 上完成了 print_r,但我没有在其中看到 signed_request。当我 print_f $facebook 对象时,我看到 signedRequest 是空的

[appId:protected] => XXX
[apiSecret:protected] => XXXXXXXXXXXXXXXXXXXX
[session:protected] => Array

        [access_token] => XXXXXXXXXX|2.h75WqKxcA1xbNPufFvpKQQ__.3600.1304452800.1-726960374|JiO0ZS30SyLaApeqhMtdocK8B_Y
        [base_domain] => XXXXXXXXX
        [expires] => 1304452800
        [secret] => rDF9C_z43_EUFy0Q_e6tyQ__
        [session_key] => 2.h75WqKxcA1xbNPufFvpKQQ__.3600.1304452800.1-726960374
        [sig] => 1971ef7eb8057c7404eae1f82d770ab5
        [uid] => XXXXXXXXXXXXXXX


[signedRequest:protected] => 
[sessionLoaded:protected] => 1
[cookieSupport:protected] => 1
[baseDomain:protected] => 
[fileUploadSupport:protected] => 

[编辑] 我确实为应用程序启用了 OAuth 2.0 设置。

4

6 回答 6

12

好的,我自己就遇到了这个问题并发现了问题。

确保画布或标签页上没有 301 重定向。就我而言,我将应用程序设置为“mydomain.com/facebook/tab/”,但我的网站正在对“ www .mydomain.com/facebook/tab/”执行 301

内容将显示,301 位导致 signedRequest 为空。

在应用程序设置中向我的域添加了“www”,并且 signedRequest 现在包含我正在寻找的数据。

于 2011-05-24T21:59:27.837 回答
6

我刚遇到这个问题。终于想通了。我必须在基本选项卡上的应用程序设置中的选项卡 URL 末尾添加一个正斜杠。

而不是: http ://domain.com/facebook

我需要: http ://domain.com/facebook/

于 2011-12-14T05:15:00.867 回答
2

我有同样的问题,我解决了。这是 URL 的问题。确保您的应用程序域和页面选项卡 URL 与相同的域匹配,例如:

1) 应用程序域:example.com 页面标签 URL:example.com 将起作用

2) 应用程序域:example.com 页面标签 URL:example.com/app/ 将起作用

3) 应用程序域:fb.example.com 页面标签 URL:fb.example.com/app/ 将起作用

4) 应用程序域:fb.example.com 页面标签 URL:example.com/fb 将不起作用

于 2011-09-08T17:39:02.833 回答
1

经过一番调查,我怀疑这与 iframe 源的托管位置有关。

当我将所有内容移至 localhost 时,signed_request 开始正常运行。

于 2011-05-05T18:29:55.683 回答
0

编辑选项卡应用程序的设置。在“高级”选项卡上,确保启用“OAuth 2.0 for Canvas”。

于 2011-05-04T06:38:06.990 回答
0

这是一个老问题,但我在 google 上发现了这个问题......对我来说,问题是我手动重定向到我的页面选项卡的 https url,然后 $_POST['signed_request'] 丢失了

于 2013-03-19T14:27:23.953 回答