我在APS.NET C#中构建了一个网页,用于检查用户是否在Facebook登录。 然后它检查是否喜欢相应的Facebook页面。页面上有一个类似的按钮。如果他们点击“赞”按钮,他们会转到特定页面。
这一切都很好但是当已经喜欢facebook页面的用户进入我的网页时,没有任何反应。我在stackoverflow上构建了许多主题的代码。它工作,但只有我使用自己的Facebook帐户。如果随机用户这样做,则对象数据仍然是空的。
我在代码中丢失了什么或者我的facebookapp配置错误了吗?
更新:添加了范围参数
使用Javascript:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
//
FB.init({
appId : '{app id}',
status : true,
cookie : true,
xfbml : true,
version : 'v2.0'
});
//
FB.login(function(response) {
if (response.status == 'connected') {
var user_id = response.authResponse.userID;
var page_id = "{page id}";
var fql_query = "SELECT uid FROM page_fan WHERE page_id=" + page_id + " and uid=" + user_id;
/* make the API call */
FB.api(
"/me/likes/{page id}",
function (response) {
console.log(response);
if (response && !response.error) {
if(response.data.length == 0) {
location.href = 'stay...';
}
else {
location.href = 'go to specific page';
}
}
}
);
} else {
// user is not logged in
}
}, {scope: 'user_likes'});
// redirect after like
FB.Event.subscribe('edge.create',
function(response) {
location.href = '...';
}
);
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
ASP / HTML:
<div class="fb-like" data-href="https://www.facebook.com/pages/{page}" data-width="300" data-layout="box_count" data-action="like" data-show-faces="false" data-share="false"></div>