skip to Main Content

How can I make a bot to pretend that it is typing a message?

The following text appears in the chat when the bot pretend to type:

enter image description here

I use the python aiogram framework but a suggestion for the native Telegram API would be also helpful.

2

Answers


  1. I seriously suggest using the python-telegram-bot library which has an extensive Wiki. The solution for what you want is described in code snippets.

    You can manually send the action:

    bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING)
    

    Or create a decorator which can then be used on any function you wish to show that action on whilst processing:

    from functools import wraps
    from telegram import (ChatAction)
    
    def send_typing_action(func):
        """Sends typing action while processing func command."""
    
        @wraps(func)
        def command_func(update, context, *args, **kwargs):
            context.bot.send_chat_action(chat_id=update.effective_message.chat_id, action=ChatAction.TYPING)
            return func(update, context,  *args, **kwargs)
    
        return command_func
    
    @send_typing_action
    def my_handler(update, context):
        pass # Will send 'typing' action while processing the request.
    
    Login or Signup to reply.
  2. For aiogram module you can use types.Message built in method answer_chat_action.

    from aiogram import types
    
    async def answer(message: types.Message):
        await message.answer_chat_action("typing")
        await message.answer("Hi!")
        
    

    Here is another action types such as upload_photo, record_video_note and so on. And here is aiogram documentation.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search