我正在开发一个我想用作页面标签的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,有时它会回显一个空值。
有什么想法吗?
答案 0 :(得分:4)
我终于弄明白了。我的代码没有任何问题。问题出在服务器上。它被设置为将所有http流量更改为https流量。因此,该标签为设置Facebook以使用https的个人提取了page_id。如果有人使用http查看facebook,则无法拉入page_id。
现在全部修好了。服务器允许http流量保持http和https流量以保持https。
答案 1 :(得分:1)
我在heroku的facebook标签应用程序上遇到了同样的问题,问题出在示例代码index.php
if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
header('Location:https://'。$ _SERVER ['HTTP_HOST']。$ _SERVER ['REQUEST_URI']); 出口();
重定向使页面信息数组变为desapear。没有这一切,一切正常:)
答案 2 :(得分:0)
我有同样的问题,在网上冲浪几小时后我发现问题出在我的应用程序密码ID
我希望这有帮助