Keyboard Callback Telegram API

573
21 марта 2017, 14:52

Знаю что inlineKeyboard могут возвращать callback_data при нажатии на них.

$CancelView = Array("text" => "Отменить просмотр", "callback_data" => "cancel_view");
$CheckView = Array("text" => "Проверить просмотр", "callback_data" => "check_view");
$inline_keyboard = [[$CancelPay],[$CheckView]];
$keyboard = Array("inline_keyboard" => $inline_keyboard);
$replyMarkup = json_encode($keyboard)

Но могут ли возвращать callback_data или что-либо наподобии этого обычные Keyboards ?

$location = Array("text" => "Отправить мое местоположение", "request_location" => true); 
$cancel = Array("text" => "НУЖЕН КАЛБЭК", "callback_data" => "cancel_view");
$Keyboards = [[$location, $cancel]];
$KeyboardSet = Array("keyboard" => $Keyboards, "resize_keyboard" => true, "one_time_keyboard" => true);
$replyMarkup = json_encode($KeyboardSet);

При попытке нажатия на кнопку "НУЖЕН КАЛБЭК", собственно эта фраза просто отправляется в чат и никакой callback не передается.

Answer 1

Нет, никаких коллбэков обычная клавиатура не передаёт, а передаёт непосредственно текст в чат. В этом и заключается ключевое различие между KeyboardButton и InlineKeyboardButton, посмотрите на список полей этих двух типов - у KeyboardButton их только три:

  1. text - текст кнопки, передающийся в чат;
  2. request_contact - запрашивать/не запрашивать номер телефона пользователя;
  3. request_location - запрашивать/не запрашивать местоположение пользователя;

В то же время, запрос контакта и местоположения доступен только с помощью обычной клавиатуры. Соответственно, каждый из этих типов применим для своего специфичного функционала.

READ ALSO
Как удалить символы и буквы в preg_replace?

Как удалить символы и буквы в preg_replace?

Привет, помогите пожалуйста удалить - /buyЦИФРА_

265
При проверке xml с помощью libxml ошибка

При проверке xml с помощью libxml ошибка

Согласно спецификации https://wwww3

243
Как связать поля таблицы с кнопкой “вход”?

Как связать поля таблицы с кнопкой “вход”?

База создана в phpmyadminЕсть таблица "Клиенты":

346
Как добавить свой виджет в Yii2 [требует правки]

Как добавить свой виджет в Yii2 [требует правки]

Как во фреймворке Yii2 добавить свой виджет?

316