Получение пользователей приложения в javascript - PullRequest
1 голос
/ 25 августа 2011

Я пытаюсь получить пользователей приложения в javascript SDK.Почему это не работает?

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

Проблема со вторым утверждением состоит в том, что загружает всех друзейв браузер, и он делает еще один запрос.Почему не работает первое утверждение?

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

попробуйте обработать is_app_user как логическое значение: (работает для меня, используя только fql)

var q = FB.Data.query ('ВЫБЕРИТЕ uid ОТ пользователя, ГДЕ uid IN' + '(ВЫБЕРИТЕ uid2 ОТ ДРУГОГО ГДЕuid1 = me ()) AND is_app_user ');

1 голос
/ 25 августа 2011

Попробуйте 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 = success:)

...