Бот Telegram Python | Определить, что сообщение отправил бот
Есть сообщение с message id n. Как можно по этому message id определить, что оно написано ботом или человеком?
Ответы (2 шт):
Автор решения: Pasha Migainis
→ Ссылка
Если ты используешь aiogram, то в объекте сообщения есть атрибут from_user. Этот атрибут указывает на пользователя который отправил сообщение и у пользователя есть атрибут is_bot - это булевое значение, которое означает бот ли юзер.
if message.from_user.is_bot:
print(f"{message.from_user.id} - {message.from_user.is_bot}")
Автор решения: PyPasha
→ Ссылка
А если не aiogram. У меня уже есть готовый метод,но он работает только тогда,когда прописываешь команду в ответ на сообщение. Есть ли вариант, что бы просто прописать команду /isbot и указать ID сообщения?
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
async def check_bot_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
if not update.message.reply_to_message:
await update.message.reply_text("Используйте эту команду в ответ на сообщение")
return
message = update.message.reply_to_message
is_bot = message.from_user.is_bot
response = f"Сообщение {'от бота' if is_bot else 'не от бота'}"
await update.message.reply_text(response)
def main():
app = ApplicationBuilder().token("").build()
app.add_handler(CommandHandler("isbot", check_bot_message))
app.run_polling()
if __name__ == "__main__":
main()