How to get callback_data from Telegram in PHP
I want to get callback data from response but array is empty.
I am trying to show in message callback_data array.
Here is my code:
![]()
1 Answer 1
There are some small mistakes in the code, I’ll try to address them; Using php://input is only possible with webhooks, did you tell Telegram the location of your script?
Is only set if a button is pressed, this should be called after the check if there is some callback data
Как создать бота в вк или про VK Callback API

Всем привет! Недавно на одном проекте мне пришлось столкнуться с ботом вк, который «живёт» в сообщениях группы. До этого я имел самый разный опыт создания ботов из личных страничек. Для того, чтобы бот мог нормально отвечать на сообщения приходилось делать самые разные извращения с кроном, таймерами, «запоминанием» сообщений и другими разными ужасами.
Как же я удивился, когда начав курить VK API групп касаемо сообщений, я увидел это чудо — Callback API.
Для нетерпеливых или любящих разбираться со всем самостоятельно в конце есть готовый пример.
Статья рассчитана не для совсем новичков и я не стал её сильно затягивать, специально опустив разжёвывание совсем очевидных вещей, иначе бы это была бы очень огромная статья. Тема написания ботов в целом так-то не очень новичковая тема.
Для тех кто не знает, что это, расскажу кратко.
При помощи этой фишки вк сам, автоматически, отправляет запросы в формате JSON куда мы укажем сами.
О формате JSON я писал немного инфы в статье про создание авторизации через вк
Так вот, в этом callback запросе вк может уведомлять обо всём: новых сообщениях группы, исходящих от группы сообщениях, видео, аудио, комментариях, новых подписчиках и так далее. И мы, прочитав этот запрос, можем решить, как на этот запрос реагировать.
Прямо как платёжные системы. Магия.
Давайте по порядку. Для того, чтобы воспользоваться callback api для создания бота или ещё чего-бы то ни было, нужно:
Сначала, конечно же, создать группу.
Открыть раздел «Управление сообществом», в котором справа будет вот такое меню:
Выбираем работу с API, где и имеем все настройки.
В первую очередь нужно создать API ключ, который сразу желательно где-то записать, потому что для его повторного отображения нужно будет получать смску на телефон.
Наверху водится вкладка с Callback API.
/>
Откройте её и посмотрите, что там есть. Сразу можете указать в типах событий «Входящее сообщение», остальные пока не трогаем, иначе они будут без нужды напрягать сервер как вк, так и Ваш.
Предлагаю сделать вот что:
Пусть бот будет отвечать на сообщения этим же сообщением, которое ему прислали, только задом-наперёд, ахах
Для начала давайте слепим два файла. callback.php и vk.class.php. Класс нужен чисто для удобства, чтобы не громоздить большую кучу кода в одном файлике. Сделаем всё аккуратно
Забегая наперёд скажу, что локалхосты указывать нельзя, сервер вк их попросту не увидит, для тестов или даже полноценного бота вам в любом случае придётся завести какой-нибудь худо-бедный сервачок.
Перед использованием самого каллбек апи придётся так же для начала подтвердить свой каллбек-скрипт, отдав вк нужную строку. Все запросы от каллбека будут лететь в формате JSON (уже говорил) и вк как бы сам показывает, как они будут выглядеть. Первый из них, это confirmation, который будет смотреться примерно так:
Функции обратного вызова в PHP

От автора: в данном уроке я хотел бы поговорить о приеме, который достаточно редко используется в создании скриптов на языке PHP, особенно на ранних этапах изучения языка. Речь идет о функциях быстрого вызова. Поэтому в данном уроке мы разберем, что это такое и каких видов они бывают.


1. Постановка задачи
Итак, давайте рассмотрим следующий пример. Есть три текстовых файла, каждый из которых содержит определенный набор чисел. Вот содержимое одного из файлов:

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Для чтения этих файлов предусмотрен специальный класс, следующего содержания:
Данный класс довольно простой и содержит всего один метод get_numbers(). Этот метод принимает в качестве аргумента массив $files, в котором содержатся имена фалов для чтения. После проверки наличия данных файлов, мы выполняем их чтение, и содержимое, записываем в предварительно в переменную $data, а затем в свойство $numbers. Давайте посмотрим в браузере, выведет данный код:

Класс свою задачу выполняет, но что делать, если скажем, через некоторое время необходимо будет, определенным образом обрабатывать данные полученные из файлов. К примеру, умножить на число, либо добавить строку и т.д. При этом придется переписывать код данного метода, так как он не универсален и выполняет только одну поставленную задачу. Поэтому в данном уроке мы добавим универсальности данному классу, используя функции обратного вызова.
2. Модернизация класса
Первым делом определимся, что такое функции обратного вызова. Функции обратного вызова (callback) – предусматривает передачу определенного исполняемого кода в качестве одного из параметров для другого кода. То есть обратный вызов функций позволяет в определенном методе исполнять код, который задается в ее аргументах. Функции обратного вызова, это — как правило обычные функции, которые напрямую ни когда не вызываются.
Прямой вызов функции: function(). Функции обратного вызова обычно передаются как параметр для другой функции. И при этом мы передаем указатель (ссылку) на функцию. Сейчас давайте изменим код метода get_numbers(), следующим образом: