首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电报使用时间表信息

电报使用时间表信息
EN

Stack Overflow用户
提问于 2022-05-25 19:25:07
回答 3查看 854关注 0票数 0

我想安排一个电报机器人消息在一个特定的单一时间发送。

从电报官方api (https://core.telegram.org/api/scheduled-messages)来看,通过设置schedule_date标志应该是可能的。

为了调度消息,只需在

或messages.sendMedia的schedule_date标志中提供未来的unixtime。

但是我没能设置那个旗子。更确切地说,我甚至不知道如何设置一个标志,或者我是否使用了正确的api。

我尝试的是通过浏览器直接使用api (也可以使用curl ),如:https://api.telegram.org/botBOT:TOKEN/sendMessage?chat_id=ID&text=Test&schedule_date=1653503351

我也没有找到通过https://pypi.org/project/pyTelegramBotAPI/#description https://telepot.readthedocs.io/en/latest/#send-a-messagehttps://github.com/nickoala/telepot访问此标志的任何方法。

我想在python环境中实现这个特性,但是任何可行的建议都是非常感谢的。

编辑:我决定保存在数据库中某个单一时间发送电报bot消息的意图。然后,我创建一个无限循环,检查在当前时间戳之前是否有未发送的消息。如果循环检测到这样的消息,它发送消息并设置一个标志,该消息已经发送。

正如所承诺的,下面是这个行为的一个完全伪造的例子:https://github.com/Sokrates1989/nameTheCountDown-lightweight

它创建一个机器人,您可以传递名称和持续时间。一旦持续时间过了,它就会发送一条带有传递名称的消息。基本上是一个简单的倒计时,你可以给出几个名字,运行简单。因为这是一个电报聊天,你可以修改你被告知倒计时结束的方式,通过修改该聊天的通知。

下面是行动中的机器人:http://t.me/NameTheCountdownBot

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-05-26 07:36:58

我们不能通过bot API本身来实现这一点,而且在schedule_date方法中没有sendMessage参数:https://core.telegram.org/bots/api#sendmessage和您所读到的是为电报客户端,而不是bot API使用者。

如果您真的不需要unixtime,可以简单地创建一个包含文本、chat_id和publish_time列(如22:15)的调度消息表,并每分钟运行一个命令,查看当前时间是否有消息要发送。然后发送消息并删除记录。

票数 1
EN

Stack Overflow用户

发布于 2022-05-26 13:36:14

请注意,python-telegram-bot库有一个用于调度任务的内置解决方案:JobQueue。这个特性基于APScheduler library,您也可以在不使用python-telegram-bot的情况下使用它。

免责声明:我目前是python-telegram-bot的维护者。

票数 0
EN

Stack Overflow用户

发布于 2022-09-05 02:47:05

https://core.telegram.org/method/messages.sendScheduledMessages

现在您可以立即发送预定的消息。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72383156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档