1

我正在尝试向电报发送自签名证书。配置将通过PostMan完成,并且我的 Bot 服务器正常(通过getUpdatesssl 连接的测试和操作调用响应成功)。

这是我发送给电报的内容:

api.telegram.org/botMY TOKEN/setWebhook?url=MY SWERVER IP:443/api/webhook

我确实将PUBLICKEY.pem作为二进制正文附加到请求中。

这是我得到的:

{ "ok": true, "result": true, "description": "Webhook was set" }

问题是当我通过以下方式检查 webHook 时getWebHookInfo

{
  "ok": true,
  "result": {
    "url": "94.183.157.125:443/api/webhook",
    "has_custom_certificate": false,
    "pending_update_count": 5,
    "last_error_date": 1476206652,
    "last_error_message": "Connection timed out"
  }
}

其中属性"has_custom_certificate" : false意味着它没有获得我的证书:\

我在这里做错了什么?

PostMan的任何替代品?

更进一步

我尝试了HttpClient以下方法,但没有成功:\

public string SetWebHook()
    {
        FileStream paramFileStream = new FileStream(@"E:\PATH.......\YOURPUBLIC.pem", FileMode.Open);
        HttpContent fileStreamContent = new StreamContent(paramFileStream);
        var response = string.Empty;
        using (var client = new HttpClient())
        using (var formData = new MultipartFormDataContent())
        {
            formData.Add(fileStreamContent, "Certificate", "YOURPUBLIC.pem");
             response = client.PostAsync("https://api.telegram.org/botMYTOKEN/setWebhook?url=MYSERVERIP:443/api/webhook", formData).Result.ToString();
        }
        return response;
    }
4

1 回答 1

0



您必须使用 curl 上传您的证书 (pem)
并且
您应该使用 HTTPS:// 作为您的 url

于 2016-12-02T17:06:40.397 回答