使用电报bot api,python 3和JobQueue发送消息的方法

问题描述:

基本上我试图理解这个api是如何工作的,通过执行以下操作我无法将消息传递到我的频道(我'从我的电报账户发送/测试命令)。另外,我如何使用JobQueue并每隔3小时发送一次自动消息,例如?文档说明不适用于我。使用电报bot api,python 3和JobQueue发送消息的方法

def test(bot, update): 
    update.send_message(chat_id='@channelid', text='this is a test') 

def main(): 
    # Create the EventHandler and pass it your bot's token. 
    updater = Updater("457160310:AAFlxrH2uAaOMGrgO0suOXFM2gVKywsUL0E") 
    dp = updater.dispatcher 

    dp.add_handler(CommandHandler("test", test)) 

    dp.add_error_handler(error) 

    updater.start_polling() 

    updater.idle() 


if __name__ == '__main__': 
    main() 
+0

请注意,你添加了令牌。如果它仍然有效,请考虑通过@botfather – 91DarioDev

对于按时间间隔发送消息的作业实现,您可以阅读this page这是充满了示例。有人应该是你想要做的事情。

关于命令的事情,我认为图书馆没有得到来自相关渠道的命令,这样您可以考虑:

  • 在私人聊天发送命令到机器人和机器人发送回复通道(在我看来更好的东西)从通道(不是命令)

  • 处理的消息和检查,如果该消息的文本包含命令

我会建议第一个解决方案,这样你甚至可以保持通道清洁

+0

更改它是的,我知道这个页面,问题是这些例子根本不起作用。至于你的第一个考虑,那就是我试图用我发布的这段代码来做的事情:从我的个人帐户中私下发送命令,以便机器人可以,而不是回应我,回应频道。 – user3927607

+0

@ user3927607第一件事我没有看到你的代码中的工作,所以我不能说出了什么问题。对于测试函数中的最后一件事,请使用bot.send_message而不是更新。它应该工作 – 91DarioDev

+0

使用“bot.send_message”修复了这个问题!非常感谢。现在关于这个工作:代码中没有任何工作,因为我不知道在哪里实现它:我应该将工作放在主函数中,并让这个工作调用另一个函数(例如测试)? – user3927607