【问题标题】:Telegram bot API and PHP/cURLTelegram 机器人 API 和 PHP/cURL
【发布时间】:2018-04-05 16:31:48
【问题描述】:

我尝试使用以下代码连接到 Telegram Bot API

<?php
//step1
$cSession = curl_init(); 
//step2
curl_setopt($cSession,CURLOPT_URL,"https://api.telegram.org/bot<token>/sendMessage?chat_id=***&text=Hello");
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
curl_setopt($cSession,CURLOPT_HEADER, false); 

curl_setopt($cSession, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($cSession, CURLOPT_SSL_VERIFYHOST,  2);
//step3
$result=curl_exec($cSession);
//step4
echo curl_error($cSession);
curl_close($cSession);
//step5
echo $result;
?>

它在本地主机上运行良好,但是当我将它上传到服务器时它会抛出错误

SSL: certificate subject name '*' does not match target host name 'api.telegram.org'

【问题讨论】:

  • 您的服务器上使用的是哪个操作系统?由于您已经禁用证书检查,您可以尝试将 CURLOPT_SSL_VERIFYHOST 设置为 0。
  • 我试过了,错误变为错误请求 您的浏览器发送了此服务器无法理解的请求。我相信这是错误 400

标签: php curl bots telegram


【解决方案1】:

我认为您的服务器存在某种 SSL 问题。它存储了一个错误的 SSL 证书,这就是为什么它可以在您的本地机器上运行,现在在您的服务器上运行。

这很不寻常。

在不了解您选择的服务器主机和操作系统的情况下,很难告诉您如何继续操作。但基本上你只需要删除为*(又名所有主机)存储的证书,因为它正在尝试将该证书用于 Telegram,但 Telegram 具有合法证书。

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 2023-03-11
    • 2016-03-09
    • 1970-01-01
    • 2020-04-04
    • 2016-07-29
    • 2018-08-11
    • 2016-08-21
    • 2016-01-20
    相关资源
    最近更新 更多