php - 无法使用 iframe 选项卡访问 Facebook signed_request

标签 php facebook facebook-php-sdk

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

isset($_REQUEST['signed_request']

总是错误的。因为我使用的是 Facebook PHP sdk,所以我也尝试过

$facebook->getSignedRequest();

我已经在 $_REQUEST 上完成了 print_r,但我没有在其中看到 signed_request。当我打印 $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 设置。

最佳答案

好的,我自己遇到了这个问题并找到了问题。

确保 Canvas 或标签页上没有 301 重定向。在我的例子中,我将应用程序设置为“mydomain.com/facebook/tab/”,但我的网站正在执行 301 到“www.mydomain.com/facebook/tab/”

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

在应用程序设置中将“www”添加到我的域,signedRequest 现在包含我要查找的数据。

关于php - 无法使用 iframe 选项卡访问 Facebook signed_request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5874323/

相关文章:

ssl - 只是有时,因为两天 : CurlException: 60: SSL certificate problem

php - 在 Yii 的数据库中获取下一个和上一个 id 记录

php - MySQL 多表查询成一个结果

facebook - 在网站上显示 Facebook 图片喜欢

iOS Facebook 状态位置

php - 用于 PHP 的 Facebook SDK 错误 - CurlException : 35: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

javascript - Facebook 身份验证对话框 : Developer warning concerning the use of "display" type "popup"

php - 0 值而不是 MySQL 列中的 NULL

php - 用于存储计算目的的典型 URL 长度(URL 缩短器)

c# - 如何仅以英文获取 Facebook 公共(public)数据(公共(public)帖子)?