Определить, загружена ли кнопка отправки в мессенджер (Facebook Messenger)

После долгого осмотра я решил спросить напрямую. Ищу способ определить, загружена кнопка «Отправить в мессенджер» или нет. В настоящее время мы тестируем нашего нового бота для обмена сообщениями и хотели бы иметь возможность отображать кнопку на нашем сайте, если человек является тестировщиком, и в противном случае отображать кнопку «протестировать нашу бета-версию», которая ссылается на форму.

Кнопка не загружается, если пользователь не является администратором или тестировщиком приложения. Я пробовал делать это с обрезкой и длиной в javascript. Однако скрипт фактически загружает содержимое внутри div.

Вот как код выглядит статичным:

<div class="fb-send-to-messenger" 
  messenger_app_id="APP_ID" 
  page_id="PAGE_ID" 
  data-ref="PASS_THROUGH_PARAM" 
  color="blue" 
  size="standard">
</div>  

И в режиме инкогнито загружает iframe с пустым HTML-документом внутри.

Что меня раздражает, так это то, что div на самом деле имеет состояние fb-xfbml-state = "rendered", даже если он не загружен.

Есть ли другой способ сделать это? Я просматривал документы Facebook, чтобы определить вне этого сценария, есть ли у пользователя активный сеанс или нет, но ничего не нашел?


person LessPixels    schedule 25.07.2016    source источник
comment
Если у вас есть зарегистрированный пользователь, вы можете проверить, есть ли у него роль в вашем приложении…   -  person CBroe    schedule 26.07.2016


Ответы (1)


Вот небольшая работа, которую я придумал при написании этого поста, которая может помочь некоторым из вас:

$(window).bind('load', function() {
  if ($('.fb-send-to-messenger').find("iframe").height() > 50) {
    alert("button loaded");
  }
});

Просто отрегулируйте значение высоты в соответствии с высотой выбранной вами кнопки.

Все равно был бы очень признателен под другим углом по этому вопросу. Желательно что-нибудь прямо из документации Facebook.

Заботиться!

person LessPixels    schedule 25.07.2016