我想创建一个 Telegram 机器人,所以我按照说明进行操作并得到:
完成!恭喜您的新机器人。你会发现它在 t.me/RonGuruBot。您现在可以添加关于部分和 您的机器人的个人资料图片,请参阅 /help 以获取命令列表。由 这样,当您完成创建酷机器人后,请联系我们的机器人支持人员 如果您想要一个更好的用户名。只要确保机器人完全 在执行此操作之前,请先进行操作。
使用此令牌访问 HTTP API: 318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw
但是,当我在 Chrome 中输入以下 URL 时:
https://api.telegram.org/bot318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw/getUpdate
s
返回的JSON为:
{"ok":true,"结果":[]}
文档让我相信 JSON 回复中应该有更多内容。
如果您不更改隐私设置,
机器人仅接收以
/
开头的消息,例如/start
,
这可能是一项痛苦的研究,尤其是在多用户聊天中
一个好的策略是在群组中提及机器人
(例如
/start @mybot_bot
)
我认为问题在于通过桌面应用程序启动机器人的首次更新。当我从移动应用程序向机器人发送消息时,我开始接收更新。
一切都很好。您的机器人没有收到任何更新。我向您的机器人发送了一条消息,如果您再次获取更新,您可以看到该消息。
尽管从 2017 年开始,这仍然是 Google 中的第一个结果之一,而且它仍然相关,所以......就我而言:
它是在电报服务器上还是在其他地方运行? 我有同样的问题。当我从自己的服务器中删除脚本时,它开始提供更新。
我也有同样的问题。文档中提到的可选参数
offset
似乎并非如此,如果不指定该参数,响应将为空。我可以通过设置offset=0
来解决问题。
检查有关 Webhook 的机器人设置
https://api.telegram.org/bot<your_token>/getWebhookInfo
,因为如果设置了传出 Webhook,则 getUpdates
方法将不起作用(请参阅 文档)。
如果您遇到类似这样的错误:
raise ReadTimeoutError(self, url, "读取超时。(读取超时=%s)" % timeout_value) urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(主机='api.telegram.org',端口=443):读取超时。 (读取超时=50)
您应该将参数
timeout
添加到 getUpdates
方法(请参阅文档)
我创建了一个简单的测试机器人,并在“开始”命令中添加了以下内容:
def start(update, context):
print("CHAT ID: "+str(update.message.chat_id))
执行.py,然后通过telegram APP发送/start命令
跑完之后
我从请求中得到了此回复
-{"url":"","has_custom_certificate":false,"pending_update_count":8}}
然后,我运行了这个
问题不存在,“https://api.telegram.org/botXXXgetUpdates”适用于我的案例。