Мне кажется выражения здесь ни при чем. По крайней мере в прямом взаимодействии с ботом. Здесь требуется модуль обработчик конкретно для бота. Своего рода "командный API".
Здесь имеется простой прототип, также можно кое что дернуть
отсюда, взять за основу и развивать дальше.
Ну и сами "запросы" я бы так отсортировал
(по порядку реализации):
1. Работа в контексте
2. инлайн-кнопки
3(4). Авторизация
4(3). Создание, редактирование, удаление записей.
5. Как бонус - сохранение и просмотр картинок
Например 1. Работа в контексте
(пока не трогаем авторизацию).
Шлем боту команду "
/поехали
©". Программа "достает из кармана что у нее есть":
Код: Выделить всё
function WakeUp:string;
var SL:TStringList;
I:Integer;
begin
SL:=TStringList.Create;
GetForms(SL);
for I:=0 to SL.Count-1 do
SL[i]:='/'+SL[i];
result:=SL.Text;
SL.Free;
end;
отсылает клиенту результат в виде:
и становится на репит с заданным таймаутом, например если пользователь не ответил в течении минуты, прерываем все операции и шлем через бота, что поезд ушел и команду "
/поехали©
" для повтора сначала.
Нажал клиент
/Форма 1
, в ответ ему может прийти:
Код: Выделить всё
/Добавить
/Редактировать
/Удалить
/Показать 10 последних
/Еще что нибудь
Ну и дальше по фантазии. Пример абстрактный, нужно добавлять еще проверку прав, session-id для мультизадачности, действия при ошибках и прочие нюансы.