我的FQL查询有问题。我阅读了所有相关主题,但我找不到我的错误。 我的Facebook应用程序具有以下权限:email,user_birthday,user_likes,read_stream。 如果用户喜欢我的页面,我希望得到一个函数,但我的查询没有返回任何结果!在Graph API资源管理器中测试了相同的查询,我得到了一个结果。这是功能:
function getUserInfo(accessToken) {
FB.api('/me', function (response) {
var user_id = response.id;
var page_id = "40796308305"; //page id for like
var fql_query = "SELECT uid FROM page_fan WHERE page_id = " + page_id + "and uid=" + user_id; // +"&access_token=" + accessToken.toString();
var the_query = FB.Data.query(fql_query);
alert(fql_query);
//第一种方式
FB.api({
method: 'fql.query',
query: fql_query,
access_token: accessToken
}, function (resp) {
alert(resp);
if (resp.length) {
alert('A fan!');
$("#container_like").show();
$("#container_notlike").hide();
document.getElementById('displayname').innerHTML = response.name;
document.getElementById('FBId').innerHTML = response.id;
} else {
alert('Not a fan!');
$("#container_notlike").show();
$("#container_like").hide();
}
}
);
//第二种方式
the_query.wait(function (rows) {
if (rows.length == 1 && rows[0].uid == user_id) {
alert('A fan!');
$("#container_like").show();
$("#container_notlike").hide();
document.getElementById('displayname').innerHTML = response.name;
document.getElementById('FBId').innerHTML = response.id;
} else {
alert('NOT a fan!');
$("#container_notlike").show();
$("#container_like").hide();
}
});
});
}
accessqoken在fql_query里面的Second Way中使用(现在注释)。我从代码中获取它:
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
var accessToken = response.authResponse.accessToken;
getUserInfo(accessToken);
......等所以我看到了所有警报,但查询没有返回任何数据。有什么问题?
答案 0 :(得分:0)
不确定这是不是问题,但我花了很多时间才发现我在localhost上运行了我的javascript,但是在facebook上授权的url是别的,所以我遇到了意想不到的失败。快速验证并消除可能性的东西。