FQL 쿼리에 문제가 있습니다. 나는 관련된 모든 주제를 읽었지만 나의 실수를 발견 할 수 없다. 내 Facebook 앱에 email, user_birthday, user_likes, read_stream 권한이 있습니다. 사용자가 내 페이지를 좋아하지만 내 쿼리가 결과를 반환하지 않을 경우 원하는 기능을 사용하십시오! 그래프 API 탐색기에서 동일한 쿼리가 테스트되었으며 결과가 나타납니다.FQL 쿼리가 결과를 반환하지 않습니다.
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();
}
});
});
}
accessToken가 fql_query 내부의 두 번째 방법에 사용되는 (현재 주석) :이 기능입니다. 내가 코드에서 그것을 가지고 :
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
var accessToken = response.authResponse.accessToken;
getUserInfo(accessToken);
... 등등 그래서 내 모든 경고를 볼 수 있지만 쿼리가 데이터를 반환하지 않습니다. 뭐가 문제 야?
포인트가 있습니다. 내가 서버에 게시하고 FB.api가 작동하지만 FB.Data.query (fql_query)가 작동하지 않습니다. 내 문제는 이제 사용자가 Like를 누르면 페이지가 다시로드되지만 fql은 아무런 동작을 반환하지 않는다는 것입니다. 나는 응용 프로그램 페이지에서 나와 다시 방문해야합니다. –