我想隐藏我网站上的一部分,直到读者喜欢我的网站。
我知道这可以使用FB.Event.subscribe('edge.create')完成,但我无法让它工作。有人可以帮助我吗?
答案 0 :(得分:0)
使用Facebook SDK,您可以这样做:
<?php
require 'src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxx',
'secret' => 'xxxxxxxxxxx',
));
$user = $facebook->getUser();
if ($user) {
try {
$likes = $facebook->api("/me/likes/YOUR PAGE ID");
if( !empty($likes['data']) )
{
?>
<p>Your fan-only content</p>
<?php
}
else
{
?>
<p>Content for non-fans (if any)</p>
<?php
}
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
}
else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_likes'
));
}
?>
您需要在Facebook上创建一个应用程序,并为其提供正确的参数,这本身就是一项工作!
答案 1 :(得分:0)
您可以使用此代码捕获类似的事件:
FB.Event.subscribe('edge.create',
function(response) {
alert('You liked the URL: ' + response);
}
);
正如您所看到的那样,它会使用在初始化Facebook JS SDK时创建的FB
对象,因此将必须为此创建一个Facebook应用。
答案 2 :(得分:-1)
以下是一个例子:
<div id="fb-root"></div>
<fb:like send="false" layout="button_count" width="100" show_faces="false"></fb:like>
<div id="hidden_content" style="display:none;">...</div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
xfbml : true // parse XFBML
});
// Additional initialization code here
FB.Event.subscribe('edge.create', function() {
$('#hidden_content').show();
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>