2011-08-25 18 views
1

我正在嘗試在javascript sdk中獲取應用程序用戶。 爲什麼這不起作用?在javascript中獲取應用程序用戶

var q = FB.Data.query('SELECT uid FROM user WHERE uid IN ' 
      + '(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1'); 

q.wait(function(resp) { 
     console.log(resp); 
    } 
); 

返回[]

但是行之有效:

var q = FB.Data.query('SELECT uid2 FROM friend WHERE uid1 = me()'); 
q.wait(function(resp) { 
     var l = []; 
     for (var i in resp) { 
      l.push(resp[i].uid2) 
     } 
     var fql = 'SELECT uid FROM user WHERE uid IN (' + l.join(',') + ') and is_app_user = 1'; 
     var q1 = FB.Data.query(fql); 
     q1.wait(function(resp) { 
      console.log(resp); 
     }); 
    } 
); 

與第二條語句的問題是,加載所有的朋友到瀏覽器,它使一個更請求。爲什麼不是第一個聲明工作?

回答

3

嘗試治療is_app_user作爲一個布爾值:

變種Q = FB.Data.query(只使用FQL對我的作品)(「SELECT UID FROM用戶WHERE在'IN' +'(SELECT uid2 FROM friend WHERE uid1 = me())AND is_app_user');

+0

這工作完美,謝謝! – Soid

1

嘗試FB.api。請參閱:舊REST API調用:

FB.API也可用於調用舊REST API。對於 例如,要調用links.getStats:

FB.api(
    { 
    method: 'links.getStats', 
    urls: 'facebook.com,developers.facebook.com' 
    }, 
    function(response) { 
    alert(
     'Total: ' + (response[0].total_count + 

響應1 .total_count)); } );

以上+ fql.query =成功:)

相關問題