2012-11-27 165 views
1

我的FQL查詢有問題。我閱讀了所有相關主題,但找不到我的錯誤。 我的Facebook應用程序具有以下權限:email,user_birthday,user_likes,read_stream。 函數內我想獲得如果用戶喜歡我的頁面,但我的查詢返回沒有結果!在Graph 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,但用Facebook授權的url是另一回事,所以我得到了意外的失敗。快速驗證並消除可能性。

+0

你有一點。我發佈在服務器上,FB.api正在工作,但FB.Data.query(fql_query)不是。我現在的問題是,當用戶按下Like時,頁面會重新加載,但fql不會返回任何動作。我必須離開應用程序頁面,然後再次訪問。 –