【问题标题】:Telegram sends duplicate POST JSON requests to webhookTelegram 向 webhook 发送重复的 POST JSON 请求
【发布时间】:2016-10-30 16:41:49
【问题描述】:

我正在尝试为电报开发城市机器人,但遇到了一个问题。 向机器人发送消息后,Telegram 向 webhook url 发送 2 个重复请求。 Webhook 脚本工作两次并向用户发送两次响应。 脚本 - 来自官方电报文档的 hellobot.php。 使用自签名 SSL 的服务器 vps 托管,并将证书密钥上传到电报。

来自服务器日志。

149.154.167.209 - - [28/Jun/2016:13:48:00 +0300] "POST /apps/gate.php HTTP/1.0" 200 86 "-" "- 149.154.167.209 - - [28/Jun/2016:13:48:00 +0300] "POST /apps/gate.php HTTP/1.1" 200 86 "-" "- 149.154.167.209 - - [28/Jun/2016:13:48:00 +0300] "POST /apps/gate.php HTTP/1.0" 200 86 "-" "- 149.154.167.209 - - [28/Jun/2016:13:48:00 +0300] "POST /apps/gate.php HTTP/1.1" 200 86 "-" "-

如何解决这个问题?

【问题讨论】:

  • 你找到这个问题的答案了吗?

标签: php json api ssl telegram


【解决方案1】:

您的机器人应该存储最后一个update_id,然后通过 update_id 进行比较

【讨论】:

    【解决方案2】:

    当 Telegram 收到来自您的机器人用户的消息时,将消息以 JSON 格式发送到您的 webhook URL。

    如果

    1. 在您的响应页面中出现错误,
    2. 或需要很长时间才能完成响应,

    然后 Telegram 再次将消息发送到您的服务器。

    【讨论】:

    • 如果您仔细检查附加的服务器日志,我的服务器会在正常时间响应 200 个代码。
    【解决方案3】:

    你能发布一些代码吗?

    如果您要求getupdates 并在每个result 上向用户发送响应;它可能会发送重复,因为您没有正确设置偏移量

    偏移量(说明): 要返回的第一个更新的标识符。必须比先前接收到的更新的标识符中的最高值大一。默认情况下,会返回从最早的未确认更新开始的更新。一旦使用高于其 update_id 的偏移量调用 getUpdates,则认为已确认更新。 ...

    #getupdates_offset

    【讨论】:

    • 我询问了 webhook 方法,谢谢回复,但对我来说没用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多