Я вижу ваш код и обнаружил, что вы пропали без вести, чтобы подписаться на событие.
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/
Теперь вы сможете просматривать "Кнопка «Отправить в мессенджер»
Примечание. Если приложение находится в разработке, администратор, разработчик и тестер могут видеть только эту кнопку.