Отправка сообщения на канал с помощью бота
Как отправить сообщение на другой канал через бота на 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 шт):
chat_id Это числовой идентификатор, просто так вы его не увидите в телеграме. Зайдите с бота в канал и отслеживайте все апдейты(просто выводите всю информацию в терминал\консоль), напишите что-то в канал или дождитесь обновления в нем и определите chat_id из пришедших данных.
чтобы отправлять ботом сообщения в канал бот должен быть участником канала и иметь разрешение на публикацию сообщений.
так же вам нужно знать 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 канала