Отправка сообщения на канал с помощью бота

Как отправить сообщение на другой канал через бота на python с библиотекой telebot, если код вроде бы достойный...

import telebot

token = '...'
bot = telebot.TeleBot(token)

@bot.message_handler(content_types='text')
def send(message):
  bot.send_message(chat_id='@qwerzxcva' , text='example')

bot.polling()

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

Автор решения: Mamba

chat_id Это числовой идентификатор, просто так вы его не увидите в телеграме. Зайдите с бота в канал и отслеживайте все апдейты(просто выводите всю информацию в терминал\консоль), напишите что-то в канал или дождитесь обновления в нем и определите chat_id из пришедших данных.

→ Ссылка
Автор решения: D. Violet

чтобы отправлять ботом сообщения в канал бот должен быть участником канала и иметь разрешение на публикацию сообщений.

так же вам нужно знать id канала, получить его можно:

import logging
logger = telebot.logger
telebot.logger.setLevel(logging.DEBUG)
  • добавьте бота в канал
  • назначьте его администратором
  • отправьте в канал сообщение, например /start

в консоли вы должны увидеть примерно следующее:

2020-05-04 20:57:03,847 (apihelper.py:55 PollingThread) DEBUG - TeleBot: "The server returned: 'b'{"ok":true,"result":[{"update_id":661653078,\n"channel_post":{"message_id":4276,"chat":{"id":-100...413,"title":"%name channel%","type":"channel"},"date":1588615023,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}''"

где id: -100...413 и есть id канала

→ Ссылка