Телеграм бот не может запостить сообщение
Я хочу сделать лог канал для своего бота. Код:
import telebot
bot = telebot.TeleBot("xxxxxx")
log_ch = -1380216357
@bot.message_handler(commands="start")
def start_hndlr(msg: telebot.types.Message):
bot.send_message(log_ch, f"#user{msg.from_user.id} запустил бота")
bot.polling()
Когда я отправляю боту в лс /start, он выдает ошибку
2021-01-26 13:43:23,256 (__init__.py:510 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: chat not found"
У бота отключена приватность групп, права администратора есть, канал приватный
Добавлено: Клиент для телеграмма Telegraph неправильно определяет id групп, проблема была в нем
Ответы (1 шт):
айди группы или канала начинается с -100..
для получения айди вы можете воспользоваться следующим кодом:
# Отладка
import logging
logger = telebot.logger
telebot.logger.setLevel(logging.DEBUG)
- добавьте бота в группу/канал
- запустите бота
- напишите сообщение в группу/канал (со своего аккаунта)
в консоли вы увидите похожее:
(apihelper.py:111 PollingThread) DEBUG - TeleBot: "The server returned: 'b'{"ok":true,"result":[{"update_id":389450237,\n"channel_post":{"message_id":24,"sender_chat":{"id":-100...,"title":"test bot channel","type":"channel"},"chat":{"id":-100...,"title":"test bot channel","type":"channel"},"date":1611661758,"text":"asd"}}]}''
где chat":{"id":-100... и будет айди вашего канала/группы.
Либо вы можете отправить сообщение от своего аккаунта, нажать на него правой кнопкой -> Копировать ссылку на сообщение.
https://t.me/c/136.../25 значение между c/ и /** и есть айди, просто добавьте в начало -100.