I am using "python-telegram-bot" library and have been looking at various examples over the internet.
I have noticed there are two ways to reply in a conversation:
the first:
”’ context.bot.send_message(chat_id=update.effective_chat.id, text=msg)”’
the second:
”’update.message.reply_text(text=msg)”’
practically they both work.
Should I prefer one on the other?
to illustarte my question. in echo function line 3 and 4 give the same result
reply function
def echo(update, context):
msg='Hi, nice to see you!'
context.bot.send_message(chat_id=update.effective_chat.id, text=msg)
update.message.reply_text(text=msg)
main function::
def main():
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher
echo_handler=MessageHandler()
echo_handler = MessageHandler(Filters.text & (~Filters.command), echo)
dispatcher.add_handler(echo_handler)
updater.start_polling()
enter code here
2
Answers
I think the "context.bot.send_message" is more used to messages from jobs, because you can paste the context.
Take this as example: https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/timerbot.py
update.message.reply_text
would be a reply to an existing message. It will quote it.context.bot.send_message
would be a new message. It will not act the same as a direct reply.