我正在尝试将这个脚本添加到我在facebook上的iframe应用程序中,但它似乎不起作用:
$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
// If a fan is on your page
if ($like_status) {
echo 123;
} else {
// If a non-fan is on your page
echo 456;
}我放置了正确的应用程序id和密钥,并以正确的方式调用facebook.php。我没有收到任何错误或警告,只是脚本无法工作。
$like_status不返回任何内容
脚本改变了吗?有没有其他版本?谢谢
编辑。更多代码:
<?php
require 'facebook.php';
$app_id = "11549508592";
$app_secret = "d898cb58b16f2aaaaaaaaaaaaaa";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
echo "<br>like status = $like_status";
?>发布于 2011-05-27 05:38:27
当从facebook调用时,Facebook会将签名的请求发送到您的页面。
所以:
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);发布于 2011-08-26 01:15:22
不久前我也遇到过类似的问题--解决方案是为tab或/和canvas页面指定完整的url来接收签名请求。
示例:使用http://myapp.com/myapp/index.php,isntead of http://myapp.com/myapp/
发布于 2011-10-05 05:51:33
如果你的画布(或页面标签)地址不是最后的地址,$_REQUEST['signed_request']可能是空的,因为Facebook只发布一次签名的请求。重定向时,发送的值会丢失。
如果您可以控制重定向,则将?signed_request=$_REQUEST['signed_request']添加到重定向的URL (您可能还需要传递其他自定义GET参数)
https://stackoverflow.com/questions/6143468
复制相似问题