【问题标题】:Webhook in Telegram Bot can't receive any updatesTelegram Bot 中的 Webhook 无法接收任何更新
【发布时间】:2017-06-03 19:35:33
【问题描述】:

我在使用 webhook 创建 Telegram Bot 时遇到问题。

目前我已经这样做了:

  • 我有一个云,IP 地址为 xxx.xxx.xxx.xxx,没有域 姓名
  • 我在 Java 应用程序的 JKS 文件中创建了证书(我已按照 https://core.telegram.org/bots/self-signed 的说明进行操作)
  • 我的证书是自签名的,我使用 IP 地址 xxx.xxx.xxx.xxx 作为我的 CN
  • 我将其导出为公钥证书,以便稍后在“setWebhook”命令参数中使用
  • 我执行这个命令: curl -F "url=https://xxx.xxx.xxx.xxx" -F "certificate=@my-pem-file.pem" https://api.telegram.org/botXXX:XXX/setWebhook
  • 我运行我的机器人引擎
  • 我尝试在浏览器中调用 URL,地址为:https://xxx.xxx.xxx.xxx(GET 方法),并且在浏览器向我的自签名证书“​​添加异常”后它工作正常 “工作正常”意味着浏览器可以识别公共证书,并且可以在我开发时显示正确的响应
  • 我尝试遵循https://core.telegram.org/bots/webhooks#testing-your-bot-with-updates 的测试脚本,例如:

    curl --tlsv1 -v -k -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"update_id":10000," message":{ "date":1441645532,"chat":{"last_name":"Test Lastname","id":1111111,"first_name":"Test","username":"Test"},"message_id" :1365,"from":{"last_name":"Test Lastname","id":1111111,"first_name":"Test","username":"Test"},"text":"/start"}} ' "https://xxx.xxx.xxx.xxx"

    效果很好。

  • 我确信 'setWebhook' 的 API 中的参数 'url' 和 'certificate' 可以正常工作,因为当我向 Telegram 调用 'getWebhookInfo' 的 API 时,它会回复:

    { “好的”:是的, “结果”: { "url": "https://xxx.xxx.xxx.xxx", “has_custom_certificate”:是的, “pending_update_count”:25, “last_error_date”:1484557151, "last_error_message": "连接超时", “最大连接数”:40 } }

  • 我尝试向我的机器人发送任何消息,但我的内部应用程序日志中没有显示任何消息,当我调用“getWebhookInfo”的 API 时,它总是显示相同,它说“连接超时"

我应该在我的证书中做什么?

【问题讨论】:

  • 我使用cloudflare.com而不是自定义证书,但电报只接受有效证书,我的意思是当您在浏览器中添加异常以继续页面时,是主要问题
  • 编译 Webhook 很复杂。我建议你阅读下面的帖子(也许对你有帮助):stackoverflow.com/questions/39420903/…

标签: ssl-certificate webhooks telegram telegram-bot


【解决方案1】:

上周我遇到了同样的问题,webhook 工作并停止(超时错误)。原来是因为俄罗斯的电报被屏蔽了。我的服务器不在俄罗斯,而是在荷兰,但在服务器更换后一切正常。

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2018-03-31
    • 2018-12-09
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多