电报机器人从服务器发送消息失败(PHP)

时间:2017-05-12 08:04:06

标签: php curl https telegram-bot

我需要一个简单的机器人来通过电报发送消息。我使用这个PHP代码的原因是:

header('Content-Type: text/html; charset=utf-8');
$message= file_get_contents("php://input");
$arrayMessage= json_decode($message, true);
$token= "*********";
$chat_id= $arrayMessage['message']['from']['id'];
$command= $arrayMessage['message']['text'];
    if($command == '/start'){
      $text= "Hello";
      $url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text;
      file_put_contents("message.txt", $url);
      //file_get_contents ($url);
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      $output = curl_exec($ch);   
      curl_close($ch);
      }
  1. 当我使用file_get_contents时,我收到了http错误请求400 ....
  2. 卷曲没有改变
  3. 我把$ url放在文本文件中,我在浏览器中使用它,效果很好
  4. 有什么建议吗?

      

    我使用cloudflare作为ssl证书,并启动了webhook方法。

1 个答案:

答案 0 :(得分:0)

也许你需要添加

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

和其他调试代码一起查找错误如下:

var_dump ( curl_getinfo ( $ch ) );
if (curl_errno ( $ch )) {
    print curl_error ( $ch );
} else {
    curl_close ( $ch );
}