Бот Telegram - методы API не работают на сервере

Я пытаюсь создать Telegram Bot. Я подписан на это видео. мои коды работают на локальном хосте, но когда я помещаю их на сервер, результат другой. этот код просто вызывает метод getUpdates API Telegram.

Код :

<?php 

    $botToken = "146158152:AAHO**********-L3xF08RN7H0xK8E";
    $website = "https://api.telegram.org/bot".$botToken;

    $update = file_get_contents($website."/getUpdates");

    var_dump($update);

?>

Результат локального хоста:

string(616) "{"ok":true,"result":[{"update_id":35****293, "message":{"message_id":1,"from":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal"},"chat":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal","type":"private"},"date":1448737853,"text":"\/start"}},{"update_id":356676294, "message":{"message_id":2,"from":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal"},"chat":{"id":95881214,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal","type":"private"},"date":1448737855,"text":"1"}}]}"

и результат сервера:

bool(false)

Извините за мой плохой английский.


person Mahmood Kohansal    schedule 28.11.2015    source источник
comment
Вы уверены, что ваш сервер разрешает подключения к api.telegram.org?   -  person Ruben Bermudez    schedule 28.11.2015


Ответы (2)


Если ваш код работает на локальном хосте, первым предположением будет то, что вашему серверу не удалось установить соединение с API-интерфейсом бота. Возможно, вам следует поместить это в оператор if.

$token = "your token";
$website = "https://api.telegram.org/bot".$token;

if($updates = file_get_contents($website."/getUpdates"))
{
  echo "Connection made";
}
else
{
  echo "Fail";
}

Также вы можете убедиться, что webHook не установлен? Метод getUpdates не возвращает результаты, если установлен webHook.

person Haider Ali    schedule 28.11.2015
comment
Если запуск метода с сервера телеграмм с локального хоста возвращает правильный ответ, это означает, что веб-перехватчик не установлен. - person Ruben Bermudez; 28.11.2015
comment
Это ... и сервер телеграмм сегодня глючил, было много жалоб на то, что сервер не работает / работает медленно. - person Haider Ali; 28.11.2015

Метод PHP file_get_contents был проблемой. Я обнаружил ту же проблему с этим методом здесь и использовал решение для решения моей проблемы.

person Mahmood Kohansal    schedule 28.11.2015