我有一个Facebook粉丝页面,我想检查访问该页面的用户是否喜欢该页面以显示内容。它以我作为管理员身份登录时有效,但当另一个帐户访问该页面时,facebook->getUser()
始终返回0
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'ID',
'secret' => 'HASH',
'cookie' => true,
));
$user = $facebook->getUser();
//Page id
$page = '215010578537112';
$likeID = $facebook->api(array( 'method' => 'fql.query', 'query' =>
'SELECT uid FROM page_fan WHERE uid =' . $user . 'AND page_id =' .$page ));
if ( $likeID ) {
}else{
}
答案 0 :(得分:1)
试试这个版本,你不需要任何特别的东西来检查他们是否喜欢你的页面:
// find out if the user likes the page or not
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
// content to show if they don't like the page
if (empty($data["page"]["liked"])) {
?>
<p>Not a fan</p>
<?php
// content to show if they do like the page
} else {
<div>Is a fan</div>
答案 1 :(得分:0)
由于这是一个粉丝页面,因此您无需调用FQL查询,因为FQL查询要求用户首先授权您的应用程序。 Facebook将向您的iframe粉丝页面发送signed_request post参数。请参阅this answer,了解如何解码该signed_request参数,并检查他们是否是您网页的粉丝。