我想将“喜欢”按钮集成到我的网站中,但我无法理解网络上提供的信息。我读过这篇文章,这是另一篇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函数。
希望这一切都有意义,希望你能提供任何解释,指出我正确的方向。
答案 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/
基本概述如下:
当用户点击您网页上的应用标签时,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!';
}