Telegram + PHP (Windows 7): не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.1 404 не найден

Я пытаюсь перенести свои первые шаги в Telegram, и я также новичок в PHP ……

Я настроил на своем компьютере с Windows 7 Apache 2.4 с PHP 5.6.14 и SSL, и он отлично работает в http и https.

Затем я попытался следовать этому уроку Telegram Bot. https://www.youtube.com/watch?v=hJBYojK7DO4. Все работает нормально, пока мне не нужно создать простую PHP-программу, подобную этой

<?php
$botToken = "<my_bot_token>";
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents($website."/getUpates");
print_r($update);
?>

Когда я пытаюсь вставить в свой браузер

https://localhost/Telegram/MyYouTubeTutorialBot/YouTubeTutorialBot.php

ответ

Warning: file_get_contents(https://api.telegram.org/<my_bot_token>/getupates): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in <my_php_file_location> on line 6

Я искал в Интернете похожие проблемы, но ничего не решил: самый интересный ответ на этот вопрос file_get_contents — не удалось открыть поток: ошибка HTTP-запроса! HTTP / 1.1 404 не найден но я не понимаю, как адаптировать его к моему делу.

В других ответах есть предложение использовать curl, но я бы хотел решить функцию продолжения file_get_contents.

Я думаю, что это не проблема PHP, но что-то в моей конфигурации где-то … но я не знаю, где

Какие-либо предложения?

заранее большое спасибо

Чезаре

ПРИМЕЧАНИЕ ДОБАВЛЕНО

В моем исходном коде была ошибка правописания опечатки, как @aeryaguzov предлагает в комментариях ….

Здесь вы исправили код, который работает прямо сейчас …

<?php
$botToken = "<my_bot_token>";
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents($website."/getUpdates");
print_r($update);
?>

4

Решение

Это не проблема PHP что-то в ваших конфигурациях.
ошибка означает, что файл https://api.telegram.org/<my_bot_token>/getupates не существует.

2

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

Telegram API всегда возвращается что-то в его теле. В случае ошибки это объект JSON с ok установлен в false, error_code и description поле. Тем не менее, он также устанавливает заголовок ответа на соответствующий код ошибки, вызывая file_get_content() выдать ошибку вместо того, чтобы вернуть все еще очень полезное тело. Чтобы обойти это, вы можете добавить потоковый контекст следующим образом:

<?php
$stream_context = stream_context_create(array(
'http' => array (
'ignore_errors' => true
)
));

$botToken = "<my_bot_token>";
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents($website."/getUpdates", false, $stream_context);
print_r($update);
?>
0

Я получил ту же ошибку. Вы можете попробовать проверить с помощью JSON, тогда это из-за того, что работает webhook

{"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active"}

Вы должны удалить webhook для вашего бота API
…../ setwebhook без URL.

-1
По вопросам рекламы [email protected]