新的 Telegram 机器人向 API 返回几乎空的 JSON

问题描述 投票:0回答:9

我想创建一个 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 回复中应该有更多内容。

  • 还需要更多吗?
  • 我应该更改什么才能获得正确的 JSON 回复?
json telegram telegram-bot
9个回答
11
投票

如果您不更改隐私设置,

机器人仅接收以

/
开头的消息,例如
/start
,

这可能是一项痛苦的研究,尤其是在多用户聊天中

一个好的策略是在群组中提及机器人

(例如

/start @mybot_bot


5
投票

我认为问题在于通过桌面应用程序启动机器人的首次更新。当我从移动应用程序向机器人发送消息时,我开始接收更新。


3
投票

一切都很好。您的机器人没有收到任何更新。我向您的机器人发送了一条消息,如果您再次获取更新,您可以看到该消息。


3
投票

尽管从 2017 年开始,这仍然是 Google 中的第一个结果之一,而且它仍然相关,所以......就我而言:

  1. 在 /start 命令之后向刚刚创建的机器人发送消息(如 hello
  2. 再次执行getUpdates

1
投票

它是在电报服务器上还是在其他地方运行? 我有同样的问题。当我从自己的服务器中删除脚本时,它开始提供更新。


1
投票

我也有同样的问题。文档中提到的可选参数

offset
似乎并非如此,如果不指定该参数,响应将为空。我可以通过设置
offset=0
来解决问题。


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
方法(请参阅文档


0
投票

我创建了一个简单的测试机器人,并在“开始”命令中添加了以下内容:

def start(update, context):
    print("CHAT ID: "+str(update.message.chat_id))

执行.py,然后通过telegram APP发送/start命令


0
投票

跑完之后

https://api.telegram.org/botXXXGetWebhookInfo

我从请求中得到了此回复

-{"url":"","has_custom_certificate":false,"pending_update_count":8}}

然后,我运行了这个

https://api.telegram.org/botXXXdeleteWebhook

问题不存在,“https://api.telegram.org/botXXXgetUpdates”适用于我的案例。

© www.soinside.com 2019 - 2024. All rights reserved.