bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Facebook bot не работает Webhook?

Здравствуйте. Подскажите пожалуйста, в чем может быть проблема сделал бота, подисался на вебхуки. Но если со страницы писать сообщения, то вебхуки не работают ( я сделал вывод на консоль ), а если в настройках бота, сделать тестовую отправку то все срабатывает. Чувствую что где-то какой-то настройки не хватает, только какой?
Уже пробовал переводил приложение в режим опубликовано, не помогло.

1. Создаю приложение
5b6844505a410377136320.png

2. Создаю новою страницу для бота
5b6844680123c907110638.png

3. Выбираю страницу и генерирую токен
5b684625e4a76162385018.png

4. Настраиваю подписку на вебхук
5b6846cd3dfa3037612608.png

5. Выбираю страницу для привязки бота
5b6846eb0be78617465410.png

6. Редактирую подписку на вкладке Webhook
5b6847108e508554165046.png

7. В настройках страницы настраиваю бота.
5b68481596b79090334710.png

8. Отправляю сообщения со странице и вебхкуки не срабатыват (даже в логах ngork нету сообщения)
5b6849334827d205125592.png

9. Отправляю тестовое сообщение с настроек webhook и все работает.
5b6849ca1196c231461155.png

Вот сам бот

const express = require('express');
const bodyParser = require('body-parser');
 
require('dotenv').config();
 
app = express();
 
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
 
 
app.get('/', (req, res) => res.send('Hello World!'));
 
// Добавление поддержки GET-запросов в webhook
app.get('/webhook', (req, res) => {
 
  // Токен верификации. Он должен быть строкой, состоящей из случайных символов
  let VERIFY_TOKEN = process.env.FB_VERIFY_TOKEN;
 
  // Разбор параметров запроса
  let mode = req.query['hub.mode'];
  let token = req.query['hub.verify_token'];
  let challenge = req.query['hub.challenge'];
 
  // Проверка, имеются ли в запросе mode и token
  if (mode && token) {
 
      // Проверка правильности mode и token
      if (mode === 'subscribe' && token === VERIFY_TOKEN) {
 
          // Отправка токена challenge из запроса
          console.log('WEBHOOK_VERIFIED');
          res.status(200).send(challenge);
 
      } else {
          // Отправка ответа '403 Forbidden' если верифицировать токен не удалось
          res.sendStatus(403);
      }
  }
});
    
app.post('/webhook', (req, res) => {
  console.log('WEBHOOK POST')
  res.status(200).send('EVENT_RECEIVED'); 
});
  
app.listen(process.env.APP_PORT, () => console.log(`Example app listening on port ${process.env.APP_PORT}!`));


Спасибо
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 1
@shadrinivan
у меня такая же проблема, приходит вебхуки только от того пользователя, который создал приложение для привязки страницы. Все реализованно на 1С и сервер апачи. Отправляется, но приходит от одного пользователя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы