我只想向电报机器人API发送一个简单的请求,我的代码是:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.telegram.org/bot332537240:MY_TOKEN/getUpdates",
CURLOPT_CUSTOMREQUEST => "POST",
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
返回:
cURL Error #:SSL certificate problem: self signed certificate
我不想使用任何ssl。我不会为电报设置任何webhook。这是一个简单的请求,我没能处理这个问题。请帮帮我
答案 0 :(得分:1)
我有同样的问题,可以通过将文件 cacert.pem 复制到我的服务器中,然后将cacert文件的路径插入我的PHP脚本中来解决。就我而言,我将文件cacert放入Web服务器的驱动器C中,然后将此脚本插入到我的PHP文件中:
CURLOPT_CAINFO =>“ C:\ cacert.pem”
因此您的PHP脚本应如下所示:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.telegram.org/bot332537240:MY_TOKEN/getUpdates",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_CAINFO => "C:\cacert.pem",
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
您可以从以下位置下载文件 cacert.pem :
https://drive.google.com/open?id=1FCLH88MpKNLDXZg3pJUSAZ0BbUbNmBR2
如果您仍然感到困惑,可以在youtube上观看我完整的教程视频:
答案 1 :(得分:0)
电报webhook只能与ssl合作。你可以简单地使用cloudflare free ssl。 但它不适用于.ir域名。 您可以更轻松地获得更新。
<?php
date_default_timezone_set("Europe/Berlin");
define('BOT_TOKEN', 'yourtoken');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
//get update
$content = file_get_contents("php://input");
//json array
$update = json_decode($content, true);
//chatid
$chatID = $update["message"]["chat"]["id"];
?>
答案 2 :(得分:0)
您可以使用CURLOPT_SSL_VERIFYPEER
并在curl_setopt_array
中将其设置为false。
CURLOPT_SSL_VERIFYPEER
阻止cURL验证对等方的SSL证书。
希望它有所帮助。
答案 3 :(得分:0)