我想在机器人初始化时发送一条消息到机器人的管理器(特定ID)。所有脚本都是用句柄制作的,我无法让它同时使用两种发送消息的方法:
def main() -> None:
"""Start the bot."""
# Create the Application and pass it your bot's token.
application = Application.builder().token("TOKEN").build()
application.bot.send_message("SOME ID","Hello! I am working.") # Problematic line
# Handlers
application.add_handler(CommandHandler("command", command_function))
...
# on non command i.e message - echo the message on Telegram
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, default_command))
# Run the bot until the user presses Ctrl-C
application.run_polling()
如果我尝试运行前面的脚本,我会收到以下警告:
RuntimeWarning: coroutine 'ExtBot.send_message' was never awaited
application.bot.send_message("SOME ID","Hello! I am working.") # Problematic line
我可以猜测问题出在两种发送消息的方法之间。但是有没有办法我可以同时使用这两种方法呢?(或者至少一次,只在机器人初始化的时候)
1条答案
按热度按时间uoifb46i1#
为了在启动时运行异步代码,
Application(Builder)
类提供了post_init
钩子。文档还包含了一个如何使用这个钩子在启动时调用bot方法的示例。免责声明:我目前是
python-telegram-bot
的维护者