2012-11-27 6 views
1

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); 

... 등등 그래서 내 모든 경고를 볼 수 있지만 쿼리가 데이터를 반환하지 않습니다. 뭐가 문제 야?

답변

0

이것이 문제가 될지 확실하지 않지만 localhost에서 내 javascript를 실행하고 있다는 것을 알아 내기 위해 많은 시간을 보냈지 만 페이스 북에서 허가 한 URL이 다른 것이기 때문에 예상치 못한 오류가 발생했습니다. . 가능성을 빠르게 확인하고 제거하는 것.

+0

포인트가 있습니다. 내가 서버에 게시하고 FB.api가 작동하지만 FB.Data.query (fql_query)가 작동하지 않습니다. 내 문제는 이제 사용자가 Like를 누르면 페이지가 다시로드되지만 fql은 아무런 동작을 반환하지 않는다는 것입니다. 나는 응용 프로그램 페이지에서 나와 다시 방문해야합니다. –

관련 문제