在没有任何形式触发的情况下将更新发送到特定频道
Send updates to specific channel without any form of trigger
当我的算法发生事件时,我想将更新分派到特定频道。我的代码看起来像这样
def _create_telegram_dispatcher():
"""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
# on non command i.e message - echo the message on Telegram
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
# Start the Bot
updater.start_polling()
# Run the bot until you press Ctrl-C or the process receives SIGINT,
# SIGTERM or SIGABRT. This should be used most of the time, since
# start_polling() is non-blocking and will stop the bot gracefully.
updater.idle()
def _run():
broker = BROKER()
loop = asyncio.get_event_loop()
loop.run_until_complete(_client_thread(api))
if __name__ == "__main__":
self._create_telegram_dispatcher()
self._run()
因此,当代理处于 运行 时,如果满足条件,我希望我的机器人在频道上发送更新,而不需要有人先与其交谈。从我初始化的 Broker
class 访问电报机器人并让它向特定频道发送消息的方法是什么?
假设您自己实现了 BROKER
class,您可以向其添加参数 bot
并将 updater.bot
传递给它。这将需要您稍微修改 _create_telegram_dispatcher
,即不要在函数内部直接调用 updater.idle()
。
或者,您可以在代理中实例化一个新的 Bot
实例。
编辑:一旦您有一个可用的机器人实例,发送消息就像 (self.)bot.send_message(…)
一样简单 - 有关更多详细信息,请参阅 here。
当我的算法发生事件时,我想将更新分派到特定频道。我的代码看起来像这样
def _create_telegram_dispatcher():
"""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
# on non command i.e message - echo the message on Telegram
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
# Start the Bot
updater.start_polling()
# Run the bot until you press Ctrl-C or the process receives SIGINT,
# SIGTERM or SIGABRT. This should be used most of the time, since
# start_polling() is non-blocking and will stop the bot gracefully.
updater.idle()
def _run():
broker = BROKER()
loop = asyncio.get_event_loop()
loop.run_until_complete(_client_thread(api))
if __name__ == "__main__":
self._create_telegram_dispatcher()
self._run()
因此,当代理处于 运行 时,如果满足条件,我希望我的机器人在频道上发送更新,而不需要有人先与其交谈。从我初始化的 Broker
class 访问电报机器人并让它向特定频道发送消息的方法是什么?
假设您自己实现了 BROKER
class,您可以向其添加参数 bot
并将 updater.bot
传递给它。这将需要您稍微修改 _create_telegram_dispatcher
,即不要在函数内部直接调用 updater.idle()
。
或者,您可以在代理中实例化一个新的 Bot
实例。
编辑:一旦您有一个可用的机器人实例,发送消息就像 (self.)bot.send_message(…)
一样简单 - 有关更多详细信息,请参阅 here。