Плагин для отправки сообщений не отображается - PullRequest
0 голосов
/ 18 мая 2018

Мой плагин Send-to-messenger не отображается на моем сайте.Вот мой конфиг:

<script>
window.fbAsyncInit = function() {
FB.init({
  appId            : 'xxxxx',
  autoLogAppEvents : true,
  xfbml            : true,
  version          : 'v3.0'
});
};

(function(d, s, id){
 var js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement(s); js.id = id;
 js.src = "https://connect.facebook.net/en_US/sdk.js";
 fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));
</script>

<div class="fb-send-to-messenger"
  messenger_app_id="xxxxx"
  page_id="vvvvv"
  color="blue"
  size="large">
</div>

HTML, сгенерированный этим кодом на этой странице: https://www.weekendr.eu/bonsplans кажется нормальным, но кнопка все равно не появится.

Некоторые элементы, которыеможет помочь:

  • Я нахожусь на сайте env
  • Мой веб-сайт имеет https: https://www.weekendr.eu
  • Мое приложение опубликовано и находится в сети
  • Я администратор и подключен к FB кроме
  • Я разрешаю сторонние куки

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Я вижу ваш код и обнаружил, что вы пропали без вести, чтобы подписаться на событие.

FB.Event.subscribe('send_to_messenger', function(e) {
      // callback for events triggered by the plugin
});

Пожалуйста, найдите полный код ниже:

  <script>
  window.fbAsyncInit = function() {
    FB.init({
      xfbml            : true,
      version          : 'v3.2'
    });

      FB.Event.subscribe('send_to_messenger', function(e) {
      // callback for events triggered by the plugin
            console.log(e);
      });
  };

  (function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>


<div class="fb-send-to-messenger" 
  messenger_app_id="<Your App ID>" 
  page_id="<Your Page ID>" 
  data-ref="1" 
  color="blue" 
  size="large">
</div>

Дополнительно, вам необходимо выполнить следующие шагипрежде чем писать код выше:

1) Добавьте свой домен в белый список (перейдите на страницу facebook -> настройка). 2) Создайте на своем сервере webhook и напишите код ниже (код на PHP. Вы можетеиспользуйте любой язык) Для узла js: https://developers.facebook.com/docs/messenger-platform/getting-started/webhook-setup

<?php


    if($_SERVER["REQUEST_METHOD"] == "POST") {
        //Write code to listen webhook request

    } else {
        $VERIFY_TOKEN = '1234';
        $mode = $_REQUEST['hub_mode'];
        $token = $_REQUEST['hub_verify_token'];
        $challenge = $_REQUEST['hub_challenge'];

        if ($mode && $token) {

            // Checks the mode and token sent is correct
            if ($mode === 'subscribe' && $token === $VERIFY_TOKEN) {

                // Responds with the challenge token from the request
                console.log('WEBHOOK_VERIFIED');
                echo $challenge;
                http_response_code(200); 

            } else {
                // Responds with '403 Forbidden' if verify tokens do not match
                http_response_code(403); 
            }
        } else {
            http_response_code(403); 
        }
    }
?>

3) Перейдите в настройки приложений и проверьте ваш веб-крюк. Настройка URL:

https://developers.facebook.com/apps/<Your App ID>/messenger/settings/

Теперь вы сможете просматривать "Кнопка «Отправить в мессенджер»

Примечание. Если приложение находится в разработке, администратор, разработчик и тестер могут видеть только эту кнопку.

0 голосов
/ 01 мая 2019

В моем случае проблема в том, что мой блокировщик рекламы (uBlock) блокирует вызов на Facebook.Отключение uBlock решит проблему.

0 голосов
/ 23 мая 2018

Вам необходимо добавить в белый список свой домен (https://www.weekendr.eu) в профиле Messenger для своей страницы:

https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/domain-whitelisting

Я предполагаю, что вы заменяете все ххх иvvv с вашим действительным идентификатором приложения и идентификатором страницы.

...