Бот не получает сообщения из телеграм каналов

Пишу приложение на nodejs. Для работы с телеграм ботом использую node-telegram-bot-api .

const TelegramBot = require('node-telegram-bot-api');
const token = 'mytoken';
const bot = new TelegramBot(token, {polling: true});
bot.onText(/\/chatid/, (msg) => {
  console.log(msg.chat.id);
});

Почему данный код не видит сообщение из телеграм каналов. С группами все отлично и с личными чатами. Что нужно сделать что бы бот увидел сообщения телеграм канала? Это событие так же не видит сообщения.

bot.on('message', (msg) => {
   console.log(msg.chat.id);
});

Бот добавлен в канал как администратор.


Ответы (1 шт):

Автор решения: Roman Bakirov

Для получения сообщений именно из канала используйте event channel_post:

#! /usr/local/bin/node

const TelegramBot = require('node-telegram-bot-api');

// replace the value below with the Telegram token you receive from @BotFather
const token = 'YOUR-TOKEN-HERE';

// Create a bot that uses 'polling' to fetch new updates
const bot = new TelegramBot(token, {
  polling: {
    params: {
      interval: 1,
      autoStart: true,
      timeout: 5,
      offset: -1,
    }
  }
});

bot.on('channel_post', async msg => {
  console.log(msg);
})
→ Ссылка