不确定为什么这不起作用,并希望有人能指出我正确的方向。
我有一个Facebook标签应用,应根据用户“是否喜欢我们”显示不同的内容。
require_once('src/facebook.php');
$app_id = "142214XXXXXXXX"; <--this is correct just hidden
$app_secret = "31275c8895XXXXXXXX";
$facebook = new facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
//just for testing (nothing shows up, nor does print($signed_request)
echo "the page is ".$page_id;
if(!$like_status){
echo "Please LIKE US to get this offer or check back on Sept 27";
} else {
echo '<img src="https://www2418.ssldomain.com/frightfurnace/SLOSSbogo.jpg"/><BR />
<a href="http://www.frightfurnace.com/coupon.asp">Printable Page</a>';
}
现在,我知道SDK已安装并正常工作,因为它可以与示例一起使用: http://www.frightfurnace.com/Facebook/example.php
我还确保我在Facebook App设置中使用绝对网址。 我在用 http://www.frightfurnace.com/Facebook/coupon.php
与SSL相同。
任何想法,有点受阻。所有帮助表示赞赏。
答案 0 :(得分:0)
在其他人需要的情况下找到答案。
在Facebook上转到您的应用 https://developers.facebook.com/apps/
转到编辑设置
在左侧点击高级
Canvas的signed_request :(启用它) iframe页面标签:(已启用)
在“画布设置”下,确保“画布类型”为 的iFrame
似乎为我工作。
答案 1 :(得分:0)
要检查的另一件事:标签/画布网址必须与所需的完全相同。如果有重定向到另一个页面,则不会发送已签名的请求和其他值。您可以使用浏览器嗅探器进行检查,如果对页面的调用以300(301/302等)重定向进行响应,则需要更改为重定向到的内容。
示例:
https://example.com/可能需要https://www.example.com/(添加www。或删除www。取决于服务器的设置方式)
www.example.com/可能需要www.example.com/index.php(添加index.php或右页)。
检查您是否在网址中正确使用http://和https://,并且https://返回有效网页。