DroidScript

Парные запросы

Ботостроительство  
20.12.2024

В Bot Api для получения целевого результата иногда требуется выполнить ещё один запрос. Такой механизм работы я называю парными запросами

Встроенные запросы

Простой пример с кодом ниже поможет разобраться с тем, как они программируются.

Для простоты код дан в процедурном стиле.

В общем случае порядок работы скрипта бота следующий:

  • Принять данные от сервера
  • Сохранить данные
  • Обработать запрос и выполнить действие

Если данных для отображения в меню автозагрузки много, то в код нужно ещё добавить функцию их подгрузки при прокрутке меню. Это похоже на то, как происходит подгрузка данных на страницах сайтов - указывается начало выборки и количество элементов в ней. Без подгрузки в меню можно вывести до 50 элементов. Обработка встроенного запроса ограничено по времени, при превышении которого не будет прекращена. Данные для вывода в меню нужно формировать очень быстро, что особенно актуально при загрузке изображений и медиа.

Если пользователь выбрал опцию меню, то, как правило, его выбор нужно обработать. Текст опции поступит в поле [message][text]. Проще говоря, это сообщение от пользователя, только отправленное на сервер посредством бота и в обновлении будет дополнительное поле [via_bot].

Отображение диалога или уведомления answerCallbackQuery

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

Изменим пару функций и добавим новую.

В тексте диалога можно использовать символ перевода строки \n.

Загрузка файла getFile

Здесь также требуется второй запрос для получения файла. После отправки сообщения с фотографией ссылку на фотографию можно получить по пути $data['message']['photo'], затем выполнить запрос на получения пути к файлу по идентификатору file_id.

if (!empty($data['message']['photo'])) {

  msgPhoto($data);
}
Ботостроительство  
© 2016-2026 
actech