使用php确定当前用户是否喜欢某个页面

时间:2014-04-12 04:40:11

标签: facebook facebook-php-sdk

我是Facebook API的新手,并且必须做一些在我看来应该相当简单的事情,但有很多方法可以让我找到一个知道地形点的人我在正确的方向。 (我可能已经指出了,但我没有成功,所以我要求帮助。)

我有一个客户网站,在某些页面上有Like按钮(当然还有很多其他内容)。这已经使用iframe标签实现了,但如果需要,我可以采用不同的方式。

未实现和需要的是,如果访问者喜欢该页面,我想显示一个内容块,如果他还没有显示不同的块。大多数页面都是相同的,因此我无法重定向或更改URL以实现此目的。我也不能提示用户许可。我必须默默地确定访问者是否喜欢他当前所在的页面。

理想情况下,我喜欢的是一个php函数,它会返回一个布尔值,无论访问者是否喜欢当前的URL。这是伪代码:

function VisitorLikesPageInFacebook($url) {
    # $url = the URL to this page (NOT a Facebook page)
    # if visitor is not logged into Facebook, return false
    # if visitor is logged into Facebook and likes $url, return true
    # if visitor is logged into Facebook and does not like $url, return false
    # if anything else happens, return false
}

可以使用php完成吗?我需要Facebook PHP SDK吗?我需要在我的Facebook应用程序中进行哪些设置,或者更好的是我可以在不创建Facebook应用程序的情况下执行此操作?我已尝试使用$ facebook-> getUser()但它返回0,除非我首先转到$ facebook-> getLoginUrl()地址并给予权限,我不能指望访问者访问客户端网站要做。我尝试过$ facebook-> getSignedRequest()但它返回NULL。我的Facebook应用程序中是否需要设置一个设置,或者我需要先做一些其他的调用?我或我的客户是否需要https来为Facebook应用程序提供安全的位置?

这个难题的另一部分是我希望页面在点击它上面的Like按钮时刷新,并且可能在它完成时,上述功能的返回值将会改变。为此,我假设我需要使用JavaScript SDK并订阅Like事件。是对的吗? (我的后备方法,如果我不能通过php做我需要的,就是使用JavaScript SDK,订阅Like事件,根据他是喜欢还是Unliked设置或取消设置cookie。然后阅读使用php的cookie。我不像php那样熟悉JavaScript,所以除非必要,否则我会避免使用它。)

如果有人能指出我正确的方向,我会非常高兴!提前谢谢。

1 个答案:

答案 0 :(得分:0)

$pageID= 'YOURID';  // Used below to fetch


$config = array(
'appID' => 'UR_ID',
'secret' => 'UR_SECRET',
'allowSignedRequest' => false,
);

$facebook = new Facebook($config);
$user_id = $facebook->getUser();

?>
<html>
<head><title>FB TEST</title></head>
<body>

<?php

if($user_id)

try {
    $user_like = $facebook->api('/'.$user_id.'/likes/'.$pageID,'GET');
    if(!$user_like){
        echo 'User doesnt like';

} catch(FacebookApiException $e) {
    $login_url = $facebook->getLoginUrl();
    echo 'Please auth us <a href="' . $login_url . '">here.</a>';
    error_log($e->getType());
    error_log($e->getMessage());
}