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

DrA*_*oel 2 php facebook facebook-php-sdk

我在粉丝页面上的facebook标签中加载了iframe,我没有运气访问$ _REQUEST ["signed_request"]对象.我很困惑,因为这应该是一个免费的,易于访问.我已经阅读并重新阅读了facebook文档并重新检查了我的facebook应用程序设置,但没有任何工作.

isset($_REQUEST['signed_request']
Run Code Online (Sandbox Code Playgroud)

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

$facebook->getSignedRequest();
Run Code Online (Sandbox Code Playgroud)

我在$ _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] => 
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*lex 12

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

确保在画布或标签页上没有301重定向.在我的情况下,我将应用程序设置为"mydomain.com/facebook/tab/"但我的网站正在执行301到" www .mydomain.com/facebook/tab /"

内容会显示,位301导致signedRequest为null.

在应用程序设置中为我的域添加了"www",现在signedRequest包含我正在寻找的数据.


Nic*_*sos 6

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

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

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