Простой чат на базе Telegram Bot'a (Python, telebot)
Необходимо реализовать следующее: пользователь пишет текстовое сообщение боту.
Его идентификатор (далее - id) сравнивается с id админа, если id не совпадает (т.е. боту пишет не админ, а простой пользователь), то сообщение отправляется админу.
Если id совпадает (т.е. боту пишет админ), то сообщение отправляется пользователю. Получается, что бот здесь - платформа для обратной связи.
Проблема: когда пишет админ - сообщение отправляется ему же (см. блок кода после else).
Сам код:
import telebot
import key
import logging
#TOKEN
token = key.token
bot = telebot.TeleBot(token)
#DEBUG OF MESSAGES
logger = telebot.logger
telebot.logger.setLevel(logging.DEBUG)
#CHAT WHICH GET MESSAGES (ADMINS' CHATS)
admin_chat = "453081342"
#TRIGGER COMMANDS
@bot.message_handler(commands=["start"])
def handle_start(message):
bot.send_message(message.chat.id, "Старт...")
@bot.message_handler(content_types=["text"])
def handle_text(message):
if message.chat.id != admin_chat:
bot.send_message(admin_chat, message.text)
else:
bot.send_message(message.chat.id, message.text)
if __name__ == "__main__":
bot.polling(none_stop=True)
Пожалуйста, предоставьте максимально простое и понятное решение. Спасибо!
Ответы (1 шт):
возможно, уже неактуально, но я столкнулась с похожей проблемой. Всё дело в синтаксисе:
admin_chat = "453081342"
эту запись Python читает, как строку, и это работает здесь:
bot.send_message(admin_chat, message.text)
но здесь ему необходимо число:
if message.chat.id != admin_chat:
поэтому для Python message.chat.id всегда != admin_chat.
Нужно просто убрать ":
admin_chat = 453081342