<rmcreative>

RSS

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

Комментарии RSS

  1. №6284
    Максим
    Максим 02 июня 2012 г., 1:00:55

    Спасибо

  2. №9036
    mihdan
    mihdan 02 июня 2014 г., 16:45:21

    Александр, а есть рабочий пример?

  3. №9039
    Sam
    Sam 03 июня 2014 г., 14:04:14

    mihdan, это и был рабочий пример на момент публикации.

  4. №9040
    mihdan
    mihdan 03 июня 2014 г., 14:18:41

    isMobileBrowser - это самопись?

  5. №9042
    Sam
    Sam 03 июня 2014 г., 16:39:22

    Да.

  6. №9043
    mihdan
    mihdan 03 июня 2014 г., 17:02:23

    Заменил на диалог apprequest, который работает сейчас на всех устройствах - надобность в костылях отпала

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.