logicface
@logicface
Начинающий

Почему не отправляется сообщение через curl когда при вставке итогового запроса в браузер — всё работает?

Всем привет. Пытаюсь с локального сервера ampps отправить запрос через curl на телеграм бота. Вроде настройки php.ini проверил (на наличие curl). Расширения на curl в самом ampps проверил – но при переходе на страницу никакой реакции от скрипта нет. В настройках среды path ведёт в саму папку с php а не на исполняемый файл pxp.exe, но php работает в браузере. Через powershell всё тоже работает. Через командную строку версия curl при проверке отображается корректно. Если самому через echo вывести $url этого скрипта и вставить его в браузер – сообщение приходит. Не подскажите в чём может быть проблема? Вот мой код:
<?php
$chat_name = "5023421476";
$token = "7376089065:AAGT7lhBoxuQCQagdHTipyXD3htIi6K12pA";
$message = "Здравствуйте.\nЭто тестовое сообщение, отправленное ботом с помощью PHP-скрипта.\n\nВсем хорошего дня.";

$text = urlencode($message);
$url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_name}&text={$text}";

$ch = curl_init();
$optArray = array(
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true
);

curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
?>
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@alexalexes
1) Включить вывод ошибок php на любую непонятную ситуацию:
// в начале php файла указывается
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

2) Смотрите, что возвращает curl, и по ошибкам тоже:
$result = curl_exec($ch);
if($result === false)
{
    echo 'Ошибка curl: ' . curl_error($ch);
}
else
{
    var_dump($result);
}

3) Не светите данными авторизации в своих вопросах, особенно, всякими токенами доступа.
ПС: curl_error.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы