python - Telegram bot - 如何每天发送消息
问题描述
我正在尝试开发一个每天在特定时间发送消息的电报机器人。但这对我不起作用。我认为问题出在时间参数上。我使用了此类的另一种方法,它们运行良好,但 run_daily 不起作用。:(
import telegram.ext
from telegram.ext import Updater
from datetime import time
updater = Updater('My Token', use_context=True)
job = updater.job_queue
def callback_minute(context: telegram.ext.CallbackContext):
context.bot.send_message(chat_id='My Chat ID', text='One message every minute')
# job.run_repeating(callback_minute, interval=5, first=0)
job.run_daily(callback_minute,time = time(hour = 20, minute = 2, second = 00),days=(0, 1, 2, 3, 4, 5, 6))
updater.start_polling()
updater.idle()
解决方案
您错误地使用了日期时间对象..
首先,请注意,您创建的 datetime 对象将考虑 UTC 时间和日期,除非您对其进行修改。
至于你的问题,修改你的代码看起来像这样,当你有很多时间要处理时,它对你来说更干净,它应该解决主要问题:
import datetime
t = datetime.time(20, 2, 00, 000000)
job.run_daily(callback_minute,t,days=(0, 1, 2, 3, 4, 5, 6),context=None,name=None)
推荐阅读
- list - Ansible / Jinja2 引用列表项中的变量键是相同的字典
- javascript - 我想用我在另一个 php 文件中使用 ajax 从我的数据库中获取的数据填充我的表单元素
- csv - 在数据库中插入保存\n
- hibernate - JPA 标准 - 如何使用 EXTRACT(字段 FROM 时间戳)?
- qt - Qt如何导入语言绑定
- android - 无法使用布局作为根视图通过 xml 进行数据绑定
- sql - 如何从字符串中拆分值并将其放在其他字段中
- node.js - 删除 sql 语句不起作用 - 尝试使用 recipe_id 删除配方
- node.js - 如何使用 ExpressJS 将请求值传播到上下文?
- c# - N 层架构,如何加入我的表?