Loading...
Loading...
Интерактивные формы с полями ввода и кнопками для ботов. Используй когда нужно: показать форму, обработать submit формы, валидировать поля формы, создать модальное окно, опрос сотрудников. НЕ используй для: обычных кнопок в сообщениях (→ pachca-messages), настройки бота (→ pachca-bots).
npx skill4agent add pachca/openapi pachca-formshttps://api.pachca.com/api/shared/v1Authorization: Bearer <ACCESS_TOKEN>viewtitleblocksinputselectradiocheckboxdatetimefile_inputheaderplain_textmarkdowndividercallback_idprivate_metadatabuttonsdatatrigger_idtrigger_idcurl "https://api.pachca.com/api/shared/v1/views/open" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"modal","trigger_id":"abc123","view":{"title":"Заявка на отпуск","callback_id":"vacation_form","private_metadata":"{\"msg_id\":154332686}","blocks":[{"type":"input","name":"date_start","label":"Дата начала"},{"type":"input","name":"date_end","label":"Дата окончания"},{"type":"select","name":"reason","label":"Причина","options":[{"text":"Отпуск","value":"vacation"},{"text":"Больничный","value":"sick"}]}]}}'живёт 3 секунды — за это время нужно успеть отправить POST /views/open. Формируй объект формы заранее, а не после получения события. Формы работают только от бота.trigger_id
"type": "view""event": "submit"callback_iduser_idprivate_metadatadatanamedata"name": "comment"data.commentfile_inputdata.field_name[].url{"errors": {"field_name": "текст ошибки"}}Ответ должен быть дан в течение 3 секунд — иначе пользователь увидит ошибку отправки, но все значения сохранятся и он повторит попытку.— идентифицирует какая форма отправлена (если ботов несколько).callback_id— контекст, переданный при открытии (до 3000 символов).private_metadata
"data": "survey_start"trigger_iduser_idinputselectradio"event": "submit"dataКаждый пользователь должен нажать кнопку сам — у каждого свой. Нельзя открыть форму принудительно.trigger_id
"data": "new_request"select"entity_type": "user""entity_type": "user""entity_id": user_id| Код | Причина | Что делать |
|---|---|---|
| 422 | Неверные параметры | Проверь обязательные поля, типы данных, допустимые значения enum |
| 429 | Rate limit | Подожди и повтори. Лимит: ~50 req/sec, сообщения ~4 req/sec |
| 403 | Нет доступа | Недостаточно скоупов ( |
| 404 | Не найдено | Неверный id. Проверь что сущность существует |
| 401 | Не авторизован | Проверь токен в заголовке Authorization |
| 410 | trigger_id истёк или не найден | trigger_id действует 3 секунды. Получи новый через нажатие кнопки (вебхук) |
POST /views/openскоуп:views:write
{
"type": "modal",
"trigger_id": "",
"view": {
"title": "",
"blocks": []
}
}typemodalprivate_metadatacallback_idview.titleview.close_textview.submit_text