Вы проверили, есть ли у вас ssl, но вы не проверяете, действительно ли вы его используете.Вы также не проверяете, каков ответ на запрос, который вы делаете
file_get_contents($url) ;
измените эту строку на:
$requestResponse = file_get_contents($url);
var_dump($http_response_header);
var_dump($requestResponse);
, чтобы увидеть, удастся ли вам сначала отправить запрос.Без ответа Это просто гадание, что может пойти не так.Вы должны увидеть код ответа = 200, если все в порядке, если другой номер не начинается с 2xx, то вы не можете отправить запрос.
Прочитайте о HTTPS-соединениях с file_get_contents () или попробуйте использовать Curl .Подсказка: просто для отладки вы можете пропустить проверку SSL, чтобы, по крайней мере, эта проблема в начале была устранена.Но не забудьте снова включить проверку после отладки!
Если вы выполняете запрос как запрос GET, вам нужно закодировать текст перед тем, как поместить его в URL - используйте: urlencode () длячто.
$url='https://api.telegram.org/bot'.$this->token.'/sendMessage?chat_id='.$userid.'&text='.$text;
изменить на
$url='https://api.telegram.org/bot'.$this->token.'/sendMessage?chat_id='. urlencode($userid) . '&text='.urlencode($text);
или даже лучше использовать http_build_query () и кодировать таким образом все переменные, кроме $this->token
.Данная ссылка имеет простой пример, поэтому я пропущу указание кода.