检测网站上的Facebook页面粉丝

时间:2011-02-21 19:43:33

标签: php javascript facebook

我想在网站上展示Faceboo Fanbox,但前提是当前用户不是我们FB页面的粉丝。有没有办法检测用户是否是某个页面的粉丝,然后显示风扇箱?

2 个答案:

答案 0 :(得分:4)

不,我很确定这是不可能的。为了能够做到这一点,你会

  1. 需要能够从他们的cookie中获取某人的FB用户ID,这只有在当前登录FB时才有效。他们甚至可能不会将用户ID存储在cookie中(不知道这一点)。
  2. 需要能够访问此人喜欢的页面
  3. 以上所有内容未经用户同意。
  4. 如果可能的话,想象一下有些人的强烈抗议......

答案 1 :(得分:0)

对于基于PHP的网站,可以这样做:

1-创建一个新的Facebook应用here

2 - 从here下载Facebook PHP SDK。提取文件并将其放在与您将粘贴下面代码的文件相同的文件夹中!

3 - 使用此tool获取您的Facebook页面ID。

4 - 从here为您的网页生成类似Facebook的框代码。

完成1,2,3和4步后,您可以使用以下代码检查用户是否喜欢某个页面:

<?php
    require('facebook.php');
    $config = array(
         'appId' => 'your facebook app id',
         'secret' => 'your facebook app secret code',

        'allowSignedRequest' => false
    );
    $facebook = new Facebook($config);
    $user_id = $facebook->getUser();
    if (isset($user_id)) {
        try {           
            $likes = $facebook->api('/me/likes/your_facebook_page_id_here', 'GET');             

            if (!empty($likes['data'])) // if user has liked the page then $likes['data'] wont be empty otherwise it will be empty
            {
                echo 'Thank you for liking our fan page!';                   
            }
           else {
                echo 'You have not liked our fan page! Like it now:';
                ?>                   
                <iframe src="//www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fchillopedia&amp;width&amp;height=290&amp;colorscheme=light&amp;show_faces=true&amp;header=true&amp;stream=false&amp;show_border=true&amp;appId=1392604484339363" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:290px;" allowTransparency="true"></iframe> //replace this with your own Facebook like box code
                <?php
            }
        } catch (FacebookApiException $e) {
            $login_url = $facebook->getLoginUrl();
            echo '<a href="' . $login_url . '">Please click here to login into your Facebook account.</a>';
            error_log($e->getType());
            error_log($e->getMessage());
        }
    } else {
        $login_url = $facebook->getLoginUrl();
        echo '<a href="' . $login_url . '">Please lick here to login into your Facebook account</a>';
    }
    ?>

用户将点击&#34;请点击此处登录您的Facebook帐户。&#34;文本将其重定向到Facebook应用程序权限页面,一旦用户允许您的应用程序获得权限,代码将获取用户的数据,并且如果用户不喜欢您的粉丝页面,则会显示该框。