Webhook в telegram. Как получать сообщения?

501
03 сентября 2017, 03:56

Создал бота в telegram, настроил его на Wehook к моему сайту, он при каждом сообщении делает запрос на сайт, но я не пойму как получить сообщения которое пришло боту, т.к. при включенном Webhook функция getUpdate заблокирована. В интернете все говорят установить Библиотеку которая ставиться через консоль, которой у меня нет, я могу только версию php менять на хостинге, управлять phpmyadmin и делать cron задачи (не знаю что это).

setWebhook
Этот метод необходим для задания URL вебхука, на который бот будет отправлять обновления. Каждый раз при получении обновления на этот адрес будет отправлен HTTPS POST с сериализованным в JSON объектом Update. При неудачном запросе к вашему серверу попытка будет повторена умеренное число раз.
Как его прочитать в php? Я проверил весь $_POST и нет там ничего.

Answer 1

Когда боту пишут сообщение, на сервер посылается post-запрос с JSON. Чтобы его получить на сервере, нужно объявить что-то типа

    $data = json_decode(file_get_contents('php://input')); // получаем JSON

В php-файле, которому адресован запрос. Потом, чтобы вытащить оттуда данные, пишем что-то типа

    $data->{'message'}->{'text'}; // вернет текст сообщения боту
    $data->{'message'}->{'chat'}->{'id'}; // вернет ID отправителя

Чтобы отправить ответ, можно сделать так

    file_get_contents(https://api.telegram.org/botЗДЕСЬ ТОКЕН БОТА/sendMessage?chat_id=ID ПОЛУЧАТЕЛЯ&text=ТЕКСТ СООБЩЕНИЯ);

Почитайте документацию к telegram API, там все написано

READ ALSO
Ошибка Service Temporarily Unavailable при Ajax запросе в WordPress

Ошибка Service Temporarily Unavailable при Ajax запросе в WordPress

GET запрос к admin-ajaxphp в WordPress возвращает ошибку Service Temporarily Unavailable

386
Ошибка MySql в php

Ошибка MySql в php

Есть следующая ошибка:

320
PHP - Parse error: syntax error, unexpected ')'

PHP - Parse error: syntax error, unexpected ')'

Помогите исправить ошибку:

382