Vk api для чего нужен параметр payload в messages.send
В документации Vk api в списке параметров метода message.send есть параметр payload Но об этом параметре написано только то, что это полезная нагрузка -_- И то, что данные в формате JSON
Так для чего этот параметр?
Ответы (1 шт):
Позволят вам определить сервисные данные (то есть ваши) для дальнейшей обработки, после того, как пользователь ответит на ваше сообщение.
Например вы отправляете клавиатуру и/или крепите клавиатуру к сообщению (inline). Для каждой клавиши можно определить payload с вашими параметрами. Когда пользователь нажмёт по клавише, сработает Event и вы получите ответ от ВК с вашими сервисными данными в контексте Event-а.
Вы например можете определить там маршрут для вашего обработчика и после ответа пользователя (клик по клавише) идентифицировать команду с конкретным алгоритмом.
Таким образом в боте можно построить классический MVC с маршрутизацией запросов, по образу и подобию как это устроено в web-фреймворках.
- Запрос (Request) - клик по кнопке с информацией о маршруте и других параметров в payload
- Маршрутизатор (Router) - определит контроллер (Controller) и метод (action)
- View - может быть вашим шаблоном сообщения (причём можно подключить шаблонизатор)
- Model - модель для работы с БД (за модели может отвечать любая подходящая ORM)