如何确定Facebook用户是否喜欢某个页面

时间:2011-01-16 03:45:00

标签: facebook facebook-graph-api fbml fbjs

有没有办法确定Facebook用户是否“喜欢”Facebook目前提供的API?

更新

我一直试图通过PHP图形API使用此代码暂时使用它。

$fbconfig['appid'] = '***';
$fbconfig['api'] = '***';
$fbconfig['secret'] = '***';

try {
    include_once "facebook.php";
} catch(Exception $o) {
    echo '<pre>';
    print_r($o);
    echo '</pre>';
}

$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true,
));

$session = $facebook->getSession();
$me = null;

if ($session) {
    try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        d($e);
    }
}

if($me) {
    try {
        $likes = $facebook->api('/me/likes');
    } catch(Exception $o) {
        d($o);
    }
}

但是,即使我已登录,会话也始终为空。

显然,上面的代码仅适用于Facebook Connect“Canvas”应用程序,我通过对我的服务器的AJAX调用从Facebook“Page”上的FBML选项卡调用此代码。 / p>

我对所有Facebook开发术语都不是很熟悉。

如何在我的情况下获得当前用户的“喜欢”?

4 个答案:

答案 0 :(得分:11)

有一种方法可以在不请求许可且不使用任何API的情况下执行此操作。

如果你有PHP:

<?php
$signed_request = $_REQUEST["signed_request"];

list($encoded_sig, $payload) = explode('.', $signed_request, 2);

$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

$app_data = isset($data["app_data"]) ? $data["app_data"] : '';
$_REQUEST["fb_page_id"] = $data["page"]["id"];
$access_admin = $data["page"]["admin"] == 1;
$has_liked = $data["page"]["liked"] == 1;
?>

您可以使用$ has_liked来包装特定于粉丝的内容

<?php if($has_liked) : ?>
fan-specifc
<?php else : ?>
for non-fans only
<?php endif; ?>

替换

<fb:visible-to-connection>
fan-specific content
<fb:else>
for non-fans only
</fb:else>
</fb:visible-to-connection>

这是非常有用和方便的,因为要求许可是关闭。

答案 1 :(得分:2)

您正在使用图形API,然后在Feed中有一个like对象,其中包含喜欢该特定帖子/ Feed项目的用户的ID。

您也可以使用FQL apis启动查询。

答案 2 :(得分:0)

尝试使用FQL。查看此页面,它可以让您测试FQL调用。 http://developers.facebook.com/docs/reference/rest/fql.query

SELECT user_id FROM,如WHERE object_id =“fb_id”

但是将fb_id替换为你想知道有多少人喜欢的对象的id。

答案 3 :(得分:0)

要让用户喜欢,您需要user_likes权限 只需将权限添加到fb:login-button perms属性,下次用户登录时,系统会要求他授予您的应用程序对新权限的访问权限。