我有一个在Facebook以外工作的应用程序。我需要用户在浏览之前喜欢2个不同的Facebook页面。
我已经有了一个函数来知道用户是否点击了(当然也喜欢)那些页面。问题是用户是否已经喜欢这些页面。所以,如果用户不喜欢。当他点击2个喜欢的按钮我就会知道。
我将在数据库中添加一个like_both = 1,从那时起,我将始终让客户端跳过该步骤。这不是一个好习惯,因为如果用户删除了类似的东西,他将跳过它,因为我在数据库中验证它。
这是我使用的代码:
window.fbAsyncInit = function() {
FB.init({
appId: '1426818840916389',
status: true,
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('edge.create', function(response) {
//Some ajax function.
});
});
我可以通过这个来了解用户是否点击了。但是如何知道他们是否已经点击而没有要求权限。
此外,我没有时间要求提交评审意见(这是否真的有必要?)。
我也尝试过这个:
FB.login(function(response) {
if (response) {
console.log(response);
var user_id = '100000246250649';
var page_id = "40796308305"; //coca cola
var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+" and uid="+user_id;
var the_query = FB.Data.query(fql_query);
the_query.wait(function(rows) {
if (rows.length == 1 && rows[0].uid == user_id) {
alert(' LIKE');
//here you could also do some ajax and get the content for a "liker" instead of simply showing a hidden div in the page.
} else {
alert('DO NOT LIKE');//and here you could get the content for a non liker in ajax...
}
});
} else {
// user is not logged in
}
响应'我得到它的唯一:
对象{authResponse:对象,状态:"已连接"}
即使我定义了UID和PAGE_ID,查询也不会运行,我得到的错误根本没有响应。
也许我没有选择,只要我搜索它几乎是不可能的,但也许一些聪明的头脑能够帮助我。
答案 0 :(得分:0)
您可以使用图表API查询用户喜欢的所有网页:
FB.api("/me/likes",function (response) {});
请注意,要执行此操作,您需要获得user_likes权限。
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/likes https://developers.facebook.com/docs/facebook-login/permissions/v2.0