2017-04-11 224 views
0

我只是想发送一个简单的请求,以电报机器人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

看到此答案http://stackoverflow.com/a/21188224 – Nathan

回答

0

电报webhook只能用ssl。你可以简单地使用免费的cloudflare 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"]; 
?> 
+0

我不使用webhook。我也需要ssl发送消息吗?或getMe方法? – reza

+0

我认为只需webhook需要ssl.i用php代码完成我的答案。 –

0

您可以使用CURLOPT_SSL_VERIFYPEER,并将其设置为false curl_setopt_array

CURLOPT_SSL_VERIFYPEER停止cURL验证对等方的SSL证书。

希望它应该帮助。

+0

你可以给一个关于'CURLOPT_SSL_VERIFYPEER'做什么以及它如何解决这个问题的小解释吗?这将大大提高答案的质量 – Shogunivar

+0

请通过编辑将该解释添加到您的答案中 – Shogunivar

0

如果你想玩的方法和全面了解电报机器人如何工作,只需在浏览器中的URL并查看结果。

https://api.telegram.org/bot<token>/METHOD_NAME 

您的问题,我认为你正在使用真的老了curl库,从here获得最新CACERT文件,并与旧的替换它。如果您正在使用xampp,请按照this链接获取更多信息