FB.Data.query и где найти схему базы данных Facebook? - PullRequest
0 голосов
/ 09 ноября 2011

Привет, мы реализовали следующий код

Блок INIT ( РАБОТАЕТ )

FB.init({
    appId: 'apiID',
    status: true, // check login status
    cookie: true, // enable cookies to allow the server to access the session
    oauth: true,  // enable OAuth 2.0
    xfbml: true,   // parse XFBML
    frictionlessRequests: true
});

Блок LOGIN ( РАБОТАЕТ )

FB.login(function(response) {
    if (response.authResponse) {
      console.log('User logged and fully authorize the app.');

    } else {
      console.log('User cancelled login or did not fully authorize.');
    }
  }, {scope: 'email,user_location,friends_location'});

Блок извлечения данных ( НЕ РАБОТАЕТ )

var friends = FB.Data.query('SELECT uid, name, location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() ORDER BY rand() LIMIT 15) AND has_added_app=0');

FB.Data.waitOn([friends], function() {
  FB.Array.forEach(friends.value, function(row) {
      console.log(row);
  });
});

Последняя проблема не возникает для "SELECT uid, name FROM user ...".

Кто-нибудь понимает схему БД в таблицах "пользователь" и "друг" в фейсбуке? Другие таблицы, к которым может обращаться "FB.Data.query"?

Спасибо!

EDIT

Блок извлечения ПРАВИЛЬНЫХ ДАННЫХ ( РАБОТАЕТ )

var friends = FB.Data.query('SELECT uid, name, hometown_location, current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() ORDER BY rand() LIMIT 15) AND has_added_app=0');

FB.Data.waitOn([friends], function() {
  FB.Array.forEach(friends.value, function(row) {
      console.log(row);
  });
});

1 Ответ

1 голос
/ 10 ноября 2011

Спецификация для языка запросов Facebook (FQL) доступна вместе с остальной документацией разработчика Facebook, включая схемы для таблиц user и friend .

...