Задать вопрос
gluck59
@gluck59
Виртуальный глюк

Почему клавиатура в Telegram bot работает выборочно?

Привет

Пишу бота, есть задача показать юзеру клавиатуру с колбеком.
Код клавиатуры выглдяит так:
apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML',
        'reply_markup' => array(
            'keyboard' => array(
                array(
                    array('text' => '11', 'url' => 'https://google.com'), 
                    array('text' => '33', 'request_contact' => true),       // работает 
                    array('text' => '22', 'callback_data' => 'callback')
            )),
            'one_time_keyboard' => true,
            'resize_keyboard' => true
        )
    ));

Кнопка "33" работает как описано в доке, остальные тупо передают свой text и больше ничего. Урл не открывается, колбек не вызывается.
Я что-то не учел?
  • Вопрос задан
  • 2443 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1С-программист
    10 месяцев
    Далее
  • Skillbox
    Профессия 1C-разработчик
    8 месяцев
    Далее
  • Hi-TECH Academy
    KL 004.2.4 Kaspersky SD-WAN
    2 дня
    Далее
Решения вопроса 1
@nllm
Вы намешали в одном обычную клавиатуру и инлайн клавиатуру.
url и callback для кнопок можно указать только для инлайн клавиатуры

https://core.telegram.org/bots/api#keyboardbutton
...
'keyboard' => array(
                array(
                    array('text' => '33', 'request_contact' => true),       // работает 
            )),
...


https://core.telegram.org/bots/api#inlinekeyboardbutton
...
'inline_keyboard' => array(
                array(
                    array('text' => '11', 'url' => 'https://google.com'), 
                    array('text' => '22', 'callback_data' => 'callback')
            )),
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы