Как получить результат sendmessage в боте telegram, когда запрос не выполнен [в php]?

Я отправляю запрос боту 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?

1

Решение

Если вам нужно получить ответ об ошибке, вы не можете использовать 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector