与Facebook整合就像

时间:2011-09-21 07:00:36

标签: facebook facebook-like

我想将“喜欢”按钮集成到我的网站中,但我无法理解网络上提供的信息。我读过这篇文章,这是另一篇stackoverflow文章,但有一些问题:http://www.saschakimmel.com/2010/05/how-to-capture-clicks-on-the-facebook-like-button/。我之前也发过这个问题,我收到的答案实际上与我的要求无关。我在这里问了我原来的问题:Facebook Integration into website

我已经在Facebook中设置了“页面”,根据我在上面的链接中的理解,您需要设置“应用程序”以获取API密钥。但我不明白的是,如果我使用这个API Key,它将指向我新创建的“App”,它没有粉丝群。如何链接此API密钥,(或通过页面管理员设置另一个密钥),这样我就可以让用户“喜欢”真正的Facebook页面?

我希望在用户喜欢该页面时运行一些javascript函数,但我对API函数调用的内容有点困惑,以及这些函数是否返回true / false值?如果用户还不喜欢该页面,我真的只想运行这些js函数。

希望这一切都有意义,希望你能提供任何解释,指出我正确的方向。

2 个答案:

答案 0 :(得分:0)

从我所看到的,你的另一个问题的答案涵盖了你需要知道的大部分内容。我注意到的一件事是你的评论:

  

“我正试图在有人的背景下设置促销代码   “喜欢”页面“

这有一些棘手的条款和条件。在继续之前看看这里:https://developers.facebook.com/docs/guides/policy/examples_and_explanations/Rewarding_Users/

如果您从添加类似按钮开始,则需要单独检查每个登录的Facebook用户,看他们是否与您的页面相关联。您可以使用api调用来获取他们的喜欢,并在响应中检查您的页面ID:

FB.api('/me/likes', function(response) {
  console.log(response);
});

如果找到匹配项,请继续进行促销,否则请显示相似按钮。

答案 1 :(得分:0)

尽管我通常在服务器端进行计算,但您尝试做的事情是完全可能的。您可以使用下面的基本概念通过Javascript SDK完成此操作。查看此链接:http://fbmhell.com/2011/06/facebook-like-gating-in-iframe-tabs/

基本概述如下:

  1. 您创建了一个页面
  2. 您为促销标签
  3. 创建了一个应用
  4. 您将应用标签添加到您的页面
  5. 当用户点击您网页上的应用标签时,Facebook会向您返回已签名的请求。

    您可以使用以下函数解析该签名请求:

    function grokSignedRequest() {
        if (isset($_REQUEST['signed_request'])) {
          $encoded_sig = null;
          $payload = null;
          list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
          $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
          $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
          return $data;
        }
        return false;
    }
    

    正如那篇文章中所提到的,如果你在通过提供的函数运行后对该签名请求执行了print_r(),你会看到如下内容:

    stdClass Object
    (
        [algorithm] => HMAC-SHA256
        [issued_at] => 1307627872
        [page] => stdClass Object
            (
                [id] => 116633947708
                [liked] => 1
                [admin] => 1
            )
    
        [user] => stdClass Object
            (
                [country] => us
                [locale] => en_US
                [age] => stdClass Object
                    (
                        [min] => 21
                    )
            )
    )
    

    从那里,您可以访问fav参数,并根据用户是否喜欢该页面显示内容。

    // call the function to parse the signed request
    $sr_data = grokSignedRequest();
    
    // check like status
    if ($sr_data->page->liked==1) {
        echo 'you are a fan';
    } else {
        echo 'you are not a fan.';
    }
    
    // check admin status
    if ($sr_data->page->admin==1) {
        echo '<li>Dude, you are an ADMIN! BADASS!';
    }