<rmcreative>

RSS

Все заметки с тегами «Facebook, JavaScript»

Можно уточнить:

    (1)
  1. (1)
    (1)
    (1)
  1. Facebook JavaScript SDK, новые fql.query и fql.multiquery

    29 июня 2012

    Много где написано, что REST API Facebook устарел, но, я не нашёл в официальной документации JavaScript SDK, что с этим делать в случае FQL. Описанные в примерах fql.query и fql.multiquery посылают запросы как раз на устаревший restserver.php.

    Как это обычно бывает у Facebook, решение сделали по-тихому. Кому нужна документация, верно?

    fql.query:

    // старая версия
    FB.api(
      {
        method: 'fql.query',
        query: 'SELECT name FROM user WHERE uid=me()'
      },
      function(response) {
        alert('Your name is ' + response[0].name);
      }
    );
     
    // новая версия
    FB.api('/fql', {
        q: 'SELECT name FROM user WHERE uid=me()'
      },
      function(response) {
        // формат ответа отличается
        alert('Your name is ' + response.data[0].name);
      }
    );

    fql.multiquery:

    // старая версия
    FB.api(
      {
        method: 'fql.multiquery', 
        queries: {
          username: 'SELECT name FROM user WHERE uid = me()',
          userpic: 'SELECT pic_big FROM user WHERE uid = me()'
        }
      },
      function(response){
        console.log(response);
      }
    );
     
    // новая версия
    FB.api('/fql', {
        q: {
          username: 'SELECT name FROM user WHERE uid = me()',
          userpic: 'SELECT pic_big FROM user WHERE uid = me()'
        }
      },
      function(response){
        console.log(response);
      }
    );
    Комментировать
  2. Facebook FB.ui send на мобильных устройствах

    1 июня 2012

    В очередной раз Facebook заставил попотеть. После реализации приглашалок через диалоги Facebook выяснилось, что они никак не хотят работать на мобильных девайсах, выдавая загадочную API Error Code 3, Unknown method. This method isn't supported by this display type.

    Оказывается, вызывать диалоги на мобильных устройствах и планшетах через JavaScript SDK — дохлый номер. Однако, примеры с URL в описании диалогов работали, поэтому родилась вот такая штука:

    // определяем, мобильный ли браузер
    // не забудьте iPad
    if(isMobileBrowser()) {
      var params = {
        // если не используете SDK, можно просто вставить ID приложения
        app_id: FB._apiKey,
        name: header,
        link: link,
        description: description,
        // позволяет видеть ошибки, лишним не будет
        show_error: 1,
        to: userID,
        redirect_uri: window.location.href,
        // не рисовать лишнее, ресайзить попап автоматом
        display: 'popup'
    };
    // строим URL
    var url = 'http://www.facebook.com/dialog/send?';
    var parts = [];
    $.each(params, function(key, val){
      parts.push(key+'='+encodeURIComponent(val));
    });
    // открываем попап
    var facebookPopup = window.open(url+parts.join('&'),'facebook-popup','height=300,width=200');
    // ставим на него фокус
    if (window.focus) {
      facebookPopup.focus();
    }
    7 комментариев