@Kafkiansky

Как получить callback_data в telegram bot sdk?

Делаю inline клавиатуру с помощью библиотеки telegram bot sdk.

Сейчас файл-обработчик выглядит так:

<?php

require __DIR__ .'/vendor/autoload.php';

use Kafkiansky\Engine\Database\Database;
use Kafkiansky\Engine\Progbot\Helper;
use Telegram\Bot\Keyboard\Keyboard;

$params = require 'settings.php';
$token = require 'token.php';

$db = new Database($params);

$bot = new Helper($token["token"]);

$text = $bot->getText();

$chat_id = $bot->chatId();

$first_name = $bot->getFirstName();

$username = $bot->getUsername();

$message = $db->getOne()->content;

$keyboard_default = Keyboard::make()
    ->inline()
    ->row(
        Keyboard::inlineButton(['text' => 'Создать пост', 'callback_data' => '/get'])
    )
    ->row(
      Keyboard::inlineButton(['text' => 'Отложенные', 'callback_data' => '']),
      Keyboard::inlineButton(['text' => 'Редактировать', 'callback_data' => ''])
    )
    ->row(
        Keyboard::inlineButton(['text' => 'Опубликовать', 'callback_data' => '']),
        Keyboard::inlineButton(['text' => 'Назад', 'callback_data' => ''])
    );
    
    $keyboard_get_post = Keyboard::make()
    ->inline()
    ->row(
        Keyboard::inlineButton(['text' => 'Группа', 'callback_data' => ''])
        
    )
    ->row(
        Keyboard::inlineButton(['text' => 'Назад', 'callback_data' => ''])
    );

switch ($text) {
    case "/start":
        $bot->sendMessage([
            'chat_id' => $chat_id,
            'text' => 'Здесь вы можете создавать публикации',
            'reply_markup' => $keyboard_default,
            'one_time_keyboard' => true
        ]);
        $db->store($username, $first_name, $chat_id);
        break;
}

switch ($data) {
    case "/get":
        $bot->sendMessage([
            'chat_id' => $chat_id,
            'text' =>  'Выберите канал',
            'reply_markup' => $keyboard_get_post
        ]);
        break;
}


Мне нужно получить данные callback_data и по ним проверить соответствие. В issue репозитория с библиотекой я видел примеры получения с помощью метода getCallbackQuery(). у меня в 3 dev master версии нет такого метода. Таким способом:
$output = json_decode(file_get_contents('php://input'), TRUE);
$callback_query = $output['callback_query'];
$data = $callback_query['data'];

callback_data я тоже не могу получить. Кто сталкивался с такой проблем и как решил?
  • Вопрос задан
  • 1183 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽