Я отправляю запрос боту telegram по php следующим образом:
<?php
$res=file_get_contents($request);
echo($res);
Когда вы отправляете действительный $ запрос, я получаю отзыв ($ res), который говорит:
{"ok":true,"result":{"message_id":***,"from":{"id":***,"is_bot":true,"first_name":"**","username":"*****"},"chat":{"id":*****,"first_name":"***","username":"***","type":"private"},"date":1505286416,"text":"test"}}
Но когда что-то не так в $ request, я ожидаю получить что-то подобное от $ res:
{"ok":false,"error_code":400,"description":"Bad Request: chat not found"}
Вместо этого я получаю предупреждение и $ res равно NULL:
Warning: file_get_contents(*******): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home/test/public_html/test.php on line 2
Что я должен сделать, чтобы получить доступ к ответу телеграммы в $ res?
Если вам нужно получить ответ об ошибке, вы не можете использовать file_get_contents
попробуйте cURL вместо него.
$url = "https://api.telegram.org/botTOKEN/getChat?chat_id=-1";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true
]);
$data = curl_exec($curl);
curl_close($curl);
$result = json_decode($data, true);
Других решений пока нет …