170 похожих чатов

Здравствуйте. Пишу бота на PHP, работает через WebHook, при нажатии

на кнопку Категории я вывожу категории кнопками (одна кнопка = одна категория, название).

Как обработать нажатие на кнопку-категорию (категории достаются из БД)?

Как вообще делать обработку команд, которые летят в чат в виде простых текстовых данных (без префиксов и т.п., чтобы кнопки выглядили аккуратно)?

use Telegram\Bot\Api;
use Telegram\Bot\Keyboard\Keyboard;

$telegram = new Api(TOKEN);
$text = $message["text"];

switch ($text) { ... }

12 ответов

18 просмотров
Игорь-BitByBit28 Автор вопроса

DDDDD

Игорь-BitByBit28 Автор вопроса

Ну я думал так сделать, как вариант - префиксы вроде @, «, », !! и т д некрасиво же будут смотреться

какая необходимость хранить кнопки в бд?

Игорь-BitByBit28 Автор вопроса

В базе данных хранятся названия категорий, которые выводятся ботом в виде кнопок, по клику на категорию я буду выводить каналы, которые тоже в БД и привязаны к категории

а сделать это инлайн кнопками не вариант?

Игорь-BitByBit28 Автор вопроса

Так смысл в том, чтобы меню было внизу

Если это статические строки, то запихни в массив или словарь и сверяй при каждом сообщении

это категории которые не статичны

Отпрввляя пользователю клавиатуру, сохраняй его состояние и когда будешь получать от него сообщения, увидишь его состояние (page_ask_type) то обращаешлся к базе

Мискузи, не дочитал ниже

а если выгрузить категории и закешировать

Игорь-BitByBit28 Автор вопроса

А как при работе с webhooks кешировать данные (те же категории, взятые из БД для помледующего сравнения при считывании команды ботом)???

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта