Facebook getSignedRequest并不总是抓取页面id


Facebook getSignedRequest not always grabbing page id

我正在制作一个Facebook应用程序,我想用它作为一个页面标签。这个想法是,它将显示不同的内容基于该选项卡所使用的Facebook页面。

<?php require_once ("php-sdk/facebook.php");
$config = array();
$config['appId'] = 'xxxxx';
$config['secret'] = 'xxxxx';
$facebook = new Facebook($config);
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"]; ?>

不幸的是,它只是偶尔有效。现在,我只是试图回显$page_id,但它并不总是有效。有时它会正确地回显$page_id,有时它会回显一个空值。

任何想法?

我终于想通了。我的代码没有问题。问题出在服务器上。设置为将所有http流量更改为https流量。所以,标签是拉page_id的个人谁设置Facebook使用https。如果有人使用http查看facebook,它无法拉入page_id。

现在都修好了。

服务器允许http流量保持http, https流量保持https。

我在heroku上的facebook标签应用程序中遇到了同样的问题,问题出现在示例代码index.php

if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {

头(地点:https://。$ _SERVER [' HTTP_HOST ']。$ _SERVER [' REQUEST_URI ']);退出();

重定向使页面信息数组消失。没有这个,一切都可以正常工作:)

我有同样的问题,上网几个小时后,我发现问题是与我的应用程序的秘密ID

希望对你有所帮助