您好我正在使用以下内容检查用户是否喜欢我的应用:
问题是签名的请求在没有页面对象的情况下返回。我在哪里设置权限,以便返回完整的请求?
require_once('facebook.php');
$facebook = new Facebook(array(
'appId'=> FB_APP_ID, // replace with your value
'secret'=> FB_APP_SECRET // replace with your value
));
$signedRequest = $facebook->getSignedRequest();
var_dump($signedRequest);
// Inspect the signed request
if($signedRequest['page']['liked'] == 1){
echo 'like';
} else {
echo 'no like';
}
}
答案 0 :(得分:1)
页面仅在facebok页面上传递(如果应用程序已配置并添加为选项卡到粉丝页面),而不是在apps.facebook.com(画布)或任何域中。
另一方面,我在每个用户的应用程序上使用(最近更改,因此可能已过时)
// scope for user
// $facebook <- assuming this is facebook sdk object
// $params = array(
// 'scope' => 'user_likes' <- to get likes we have to require this
//);
function fanGate() {
$likes = null;
try {
$likes = $facebook->api('/me/likes');
} catch (Exception $e) {}
$likeUs = false;
if ($likes)
foreach ($likes['data'] as $like) {
if ($like['id'] == 'some id of page')
$likeUs = true;
}
return $likeUs;
}
修改强>
根据documentation检查用户是否喜欢Fanpage或任何其他GraphAPI对象,您只需要user_likes然后
$arrResult = $facebook->api("/me/likes/${SOMEOBJECT_ID}")
// $arrResult = $facebook->api("/${USER_ID}/likes/${SOMEOBJECT_ID}");
if (empty($arrResult['data']))
echo 'dont like';
else
echo 'like';
仅仅召唤/me/likes
会返回所有喜欢,但会change - 2013-10-02
/ USER_ID /喜欢默认更新目前,API会返回所有喜欢的内容 默认。迁移后,通过Graph获取用户的喜欢 API将一次返回25个结果。我们已经添加了分页 结果,以便您可以翻阅所有用户的喜欢。