我如何使用 python-telegram-bot 在 dispatcher.run_async() 中执行发送消息任务?

How I can do a send message task inside a dispatcher.run_async() using python-telegram-bot?

我使用 python-telegram-bot 模块开发了一个电报机器人。我尝试 运行 一个函数而不使用 dispatcher.run_async(myfunction) 执行它但是我如何才能完成一个任务,例如从 dispatcher.run_async()?

内部发送消息

我的数据库中有所有用户 ID。这是我的代码片段。

import telegram
from telegram.ext import Updater

def myfunction():
    # bot.send_message(text='Hello, World',chat_id=<user_id>)

def main():
    """Start the bot."""
    # Create the Updater and pass it your bot's token.
    updater = Updater("TOKEN")

    # Get the dispatcher to register handlers
    dispatcher = updater.dispatcher
    dispatcher.run_async(myfunction)

    # Start the Bot
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

不确定这是否是预期的方式,但您可以通过将函数传递给机器人来传递函数 run_async:

dispatcher.run_async(myFunction, updater.bot)

def myfunction(bot):
    bot.send_message(text='Hello, World',chat_id=123456789)

import telegram
from telegram.ext import Updater

def myfunction(bot):
    bot.send_message(text='Hello, World',chat_id=123456789)

def main():
    """Start the bot."""
    # Create the Updater and pass it your bot's token.
    updater = Updater("<MY-BOT-TOKEN>")

    # Get the dispatcher to register handlers
    dispatcher = updater.dispatcher
    dispatcher.run_async(myfunction, updater.bot)

    # Start the Bot
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()