我正试着给我的页面添加一个粉丝门,我可以让"pre- like“内容显示出来,但在我喜欢这个页面之后-- post-like内容就不会显示了。无论我是否喜欢这个页面,它都会显示相同的pre-like内容。
这是我在index.php文件中使用的代码...
require 'facebook.php';
$app_id = "myappid";
$app_secret = "myappsecret";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"];
$page_admin = $signed_request["page"]["admin"];
$like_status = $signed_request["page"]["liked"];
$country = $signed_request["user"]["country"];
$locale = $signed_request["user"]["locale"];
// If a fan is on your page
if ($like_status) {
$a = file_get_contents("dolike.html");
echo ($a);
} else {
// If a non-fan is on your page
$a = file_get_contents("dontlike.html");
echo ($a);
}
?>
我看过半打的例子,它们本质上都是一样的(只有几个变体,有些在html上使用图片,有些在同一个页面上使用html ),但它们都没有显示出类似post的内容。
我从代码中删除了应用程序id和密钥,尽管我确实有并一直在使用它们。
任何帮助都是很棒的。
发布于 2011-10-06 15:48:37
<?php
require 'facebook.php';
$app_id = "myappid";
$app_secret = "myappsecret";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"];
$page_admin = $signed_request["page"]["admin"];
$like_status = $signed_request["page"]["liked"];
$country = $signed_request["user"]["country"];
$locale = $signed_request["user"]["locale"];
// If a fan is on your page
if ($like_status == 1) {
$a = file_get_contents("dolike.html");
echo ($a);
} else {
// If a non-fan is on your page
$a = file_get_contents("dontlike.html");
echo ($a);
}
?>试试这个:)
编辑:
或者尝试这个没有FB PHP-SDK的版本,这是我使用的解决方案,所以我不需要用户整个PHP-SDK
<?php
$app_secret="xxxxxxxxxxxxx";
$data = parse_signed_request($_REQUEST['signed_request'], $app_secret);
$page_data=$data['page'];
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
if($page_data['liked'] == "1"){
// Fan Content
}else{
// No-Fan Content
}
?>https://stackoverflow.com/questions/7668976
复制相似问题