Webhook in Telegram Bot无法接收任何更新

时间:2017-01-19 07:28:32

标签: ssl-certificate webhooks telegram telegram-bot

使用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
  • 我运行我的僵尸引擎
  • 我尝试在浏览器中调用网址,地址为: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"缓存控制:无缓存" -d' {" update_id":10000," message":{" date":1441645532," chat":{& #34; last_name":"测试姓氏"," id":1111111," first_name":"测试"," ;用户名":"试验"}" MESSAGE_ID":1365,"从" {"姓氏":"测试姓氏"," id":1111111," first_name":"测试","用户名":"测试&# 34;}"文本":" /启动"}}' " https://xxx.xxx.xxx.xxx"

    工作正常。

  • 我确定参数' url'和证书'在' setWebhook'的API中工作得很好,因为我称之为' getWebhookInfo'电报,它回复说:

    {   " ok":是的,   "结果":{     " url":" https://xxx.xxx.xxx.xxx",     " has_custom_certificate":是的,     " pending_update_count":25,     " last_error_date":1484557151,     " last_error_message":"连接超时",     " max_connections":40   } }

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

我的证书怎么办?

1 个答案:

答案 0 :(得分:0)

上周我遇到了同样的问题,webhooks工作并停止了(超时错误)。结果是因为俄罗斯的电报被封锁了。我的服务器不是在俄罗斯,而是在荷兰,但是在服务器改变之后它一切都工作了。