pachca-forms
npx skills add https://github.com/pachca/openapi --skill pachca-forms
Agent 安装分布
Skill 文档
pachca-forms
Base URL: https://api.pachca.com/api/shared/v1
ÐвÑоÑизаÑиÑ: Authorization: Bearer <ACCESS_TOKEN>
Токен: ÑолÑко Ð±Ð¾Ñ (ÐвÑомаÑизаÑии â ÐнÑегÑаÑии â API). ÐолÑзоваÑелÑÑкий Ñокен не подойдÑÑ â ÑоÑÐ¼Ñ ÑÑебÑÑÑ Ð¸ÑÑ
одÑÑий вебÑ
Ñк.
ÐÑли Ñокен неизвеÑÑен â ÑпÑоÑи Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿ÐµÑед вÑполнением запÑоÑов.
Ðогда иÑполÑзоваÑÑ
- показаÑÑ ÑоÑмÑ
- инÑеÑакÑÐ¸Ð²Ð½Ð°Ñ ÑоÑма
- модалÑное окно
- modal
- submit ÑоÑмÑ
- обÑабоÑаÑÑ Ð¾ÑпÑÐ°Ð²ÐºÑ ÑоÑмÑ
- валидаÑÐ¸Ñ ÑоÑмÑ
- view_submission
- опÑоÑ
- заÑвка ÑеÑез ÑоÑмÑ
Ðогда ÐРиÑполÑзоваÑÑ
- полÑÑиÑÑ Ð¿ÑоÑилÑ, мой пÑоÑилÑ, ÑÑÑановиÑÑ ÑÑаÑÑÑ â pachca-profile
- найÑи ÑоÑÑÑдника, ÑоздаÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, ÑпиÑок ÑоÑÑÑдников â pachca-users
- ÑоздаÑÑ ÐºÐ°Ð½Ð°Ð», ÑоздаÑÑ Ð±ÐµÑедÑ, ÑоздаÑÑ ÑÐ°Ñ â pachca-chats
- оÑпÑавиÑÑ ÑообÑение, оÑвеÑиÑÑ Ð² ÑÑед, пÑикÑепиÑÑ Ñайл â pachca-messages
- наÑÑÑоиÑÑ Ð±Ð¾Ñа, Ð²ÐµÐ±Ñ Ñк, webhook â pachca-bots
- ÑоздаÑÑ Ð·Ð°Ð´Ð°ÑÑ, ÑпиÑок задаÑ, напоминание â pachca-tasks
- поиÑк ÑообÑений, найÑи ÑообÑение, полноÑекÑÑовÑй поиÑк â pachca-search
- аÑдиÑ, жÑÑнал ÑобÑÑий, безопаÑноÑÑÑ â pachca-security
ÐоÑаговÑе ÑÑенаÑии
ÐоказаÑÑ Ð¸Ð½ÑеÑакÑивнÑÑ ÑоÑÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ
- ÐаÑанее подгоÑÐ¾Ð²Ñ Ð¾Ð±ÑÐµÐºÑ ÑоÑмÑ:
viewÑtitle,blocks(ÑипÑ:input,select,radio,checkbox,date,time,file_input,header,plain_text,markdown,divider), опÑионалÑноcallback_id(иденÑиÑикаÑÐ¾Ñ ÑоÑмÑ) иprivate_metadata(конÑекÑÑ, напÑÐ¸Ð¼ÐµÑ id ÑообÑениÑ) - ÐÑпÑÐ°Ð²Ñ ÑообÑение Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ (POST /messages Ñ
buttons, вdataкнопки пеÑедай иденÑиÑикаÑÐ¾Ñ ÑоÑмÑ) - ÐÑи нажаÑии кнопки â полÑÑи вебÑ
Ñк-ÑобÑÑие Ñ
trigger_id - Ðемедленно оÑпÑÐ°Ð²Ñ POST /views/open Ñ
trigger_idи гоÑовÑм обÑекÑом ÑоÑÐ¼Ñ - ÐолÑзоваÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÑÐµÑ ÑоÑÐ¼Ñ â пÑи оÑпÑавке полÑÑи Ð²ÐµÐ±Ñ Ñк â обÑабоÑай по ÑÑенаÑÐ¸Ñ Â«ÐбÑабоÑаÑÑ Ð¾ÑпÑÐ°Ð²ÐºÑ ÑоÑмÑ»
curl "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"}]}]}}'
trigger_idживÑÑ 3 ÑекÑÐ½Ð´Ñ â за ÑÑо вÑÐµÐ¼Ñ Ð½Ñжно ÑÑпеÑÑ Ð¾ÑпÑавиÑÑ POST /views/open. ФоÑмиÑÑй обÑÐµÐºÑ ÑоÑÐ¼Ñ Ð·Ð°Ñанее, а не поÑле полÑÑÐµÐ½Ð¸Ñ ÑобÑÑиÑ. ФоÑÐ¼Ñ ÑабоÑаÑÑ ÑолÑко Ð¾Ñ Ð±Ð¾Ñа.
ÐбÑабоÑаÑÑ Ð¾ÑпÑÐ°Ð²ÐºÑ ÑоÑÐ¼Ñ (view_submission)
- ÐолÑÑи вебÑ
Ñк Ñ
"type": "view","event": "submit"â ÑодеÑжиÑcallback_id,user_id,private_metadataиdata(знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹, клÑÑи ÑовпадаÑÑ Ñ Ð¿Ð¾Ð»ÐµÐ¼nameкаждого блока) - Ðзвлеки знаÑÐµÐ½Ð¸Ñ Ð¸Ð·
data: напÑимеÑ, Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ° Ñ"name": "comment"знаÑение вdata.comment - ÐÑли ÑоÑма ÑодеÑжиÑ
file_inputâ ÑкаÑай ÑÐ°Ð¹Ð»Ñ Ð¿Ð¾data.field_name[].urlнемедленно: ÑÑÑлки иÑÑекаÑÑ ÑеÑез 1 ÑÐ°Ñ - ÐÑли даннÑе Ð²Ð°Ð»Ð¸Ð´Ð½Ñ â оÑвеÑÑ HTTP 200 (пÑÑÑое Ñело) â ÑоÑма закÑоеÑÑÑ Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ
- ÐÑли еÑÑÑ Ð¾Ñибки â оÑвеÑÑ HTTP 400 Ñ
{"errors": {"field_name": "ÑекÑÑ Ð¾Ñибки"}}â полÑзоваÑÐµÐ»Ñ ÑÐ²Ð¸Ð´Ð¸Ñ Ð¾Ñибки в ÑоÑме и ÑÐ¼Ð¾Ð¶ÐµÑ Ð¸ÑпÑавиÑÑ Ð¸ оÑпÑавиÑÑ Ð¿Ð¾Ð²ÑоÑно
ÐÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð´Ð°Ð½ в ÑеÑение 3 ÑекÑнд â инаÑе полÑзоваÑÐµÐ»Ñ ÑÐ²Ð¸Ð´Ð¸Ñ Ð¾ÑÐ¸Ð±ÐºÑ Ð¾ÑпÑавки, но вÑе знаÑÐµÐ½Ð¸Ñ ÑÐ¾Ñ ÑанÑÑÑÑ Ð¸ он повÑоÑÐ¸Ñ Ð¿Ð¾Ð¿ÑÑкÑ.
callback_idâ иденÑиÑиÑиÑÑÐµÑ ÐºÐ°ÐºÐ°Ñ ÑоÑма оÑпÑавлена (еÑли боÑов неÑколÑко).private_metadataâ конÑекÑÑ, пеÑеданнÑй пÑи оÑкÑÑÑии (до 3000 Ñимволов).
ÐпÑÐ¾Ñ ÑоÑÑÑдников ÑеÑез ÑоÑмÑ
- ÐÑпÑÐ°Ð²Ñ ÑообÑение Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ «ÐÑойÑи опÑоÑ» в канал или ÐС: POST /messages Ñ
"data": "survey_start"в кнопке - ÐÑи нажаÑии кнопки полÑÑи вебÑ
Ñк Ñ
trigger_idиuser_idнажавÑего - Ðемедленно оÑпÑÐ°Ð²Ñ POST /views/open Ñ ÑоÑмой (полÑ:
input,select,radioи Ñ.д.) - ÐÑи оÑпÑавке ÑоÑÐ¼Ñ Ð¿Ð¾Ð»ÑÑи вебÑ
Ñк Ñ
"event": "submit"â знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹ вdata - ÐбÑабоÑай оÑвеÑÑ: ÑÐ¾Ñ Ñани в Ð±Ð°Ð·Ñ Ð¸Ð»Ð¸ оÑпÑÐ°Ð²Ñ Ð¸ÑоговÑм ÑообÑением в канал
- ÐÑвеÑÑ HTTP 200 â ÑоÑма закÑоеÑÑÑ
ÐаждÑй полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ нажаÑÑ ÐºÐ½Ð¾Ð¿ÐºÑ Ñам â Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñвой
trigger_id. ÐелÑÐ·Ñ Ð¾ÑкÑÑÑÑ ÑоÑÐ¼Ñ Ð¿ÑинÑдиÑелÑно.
ФоÑма заÑвки/запÑоÑа
- РазмеÑÑи в канале ÑообÑение Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ «СоздаÑÑ Ð·Ð°ÑвкÑ» (
"data": "new_request") - ÐÑи нажаÑии оÑкÑой ÑоÑÐ¼Ñ Ñ Ð¿Ð¾Ð»Ñми: Ñема, опиÑание, пÑиоÑиÑÐµÑ (
select) - ÐÑи submit-вебÑ
Ñке: Ñоздай задаÑÑ (POST /tasks) или оÑпÑÐ°Ð²Ñ Ñведомление оÑвеÑÑÑÐ²ÐµÐ½Ð½Ð¾Ð¼Ñ (POST /messages Ñ
"entity_type": "user") - ÐÑпÑÐ°Ð²Ñ Ð¿Ð¾Ð´ÑвеÑждение авÑоÑÑ: POST /messages Ñ
"entity_type": "user","entity_id": user_idиз Ð²ÐµÐ±Ñ Ñка - ÐÑвеÑÑ HTTP 200 â ÑоÑма закÑоеÑÑÑ
ÐбÑабоÑка оÑибок
| Ðод | ÐÑиÑина | ЧÑо делаÑÑ |
|---|---|---|
| 422 | ÐевеÑнÑе паÑамеÑÑÑ | ÐÑовеÑÑ Ð¾Ð±ÑзаÑелÑнÑе полÑ, ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ , допÑÑÑимÑе знаÑÐµÐ½Ð¸Ñ enum |
| 429 | Rate limit | Ðодожди и повÑоÑи. ÐимиÑ: ~50 req/sec, ÑообÑÐµÐ½Ð¸Ñ ~4 req/sec |
| 403 | ÐÐµÑ Ð´Ð¾ÑÑÑпа | ÐедоÑÑаÑоÑно ÑкоÑпов (insufficient_scope), Ð±Ð¾Ñ Ð½Ðµ в ÑаÑе, или endpoint ÑолÑко Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¾Ð²/владелÑÑев |
| 404 | Ðе найдено | ÐевеÑнÑй id. ÐÑовеÑÑ ÑÑо ÑÑÑноÑÑÑ ÑÑÑеÑÑвÑÐµÑ |
| 401 | Ðе авÑоÑизован | ÐÑовеÑÑ Ñокен в заголовке Authorization |
| 410 | trigger_id иÑÑÑк или не найден | trigger_id дейÑÑвÑÐµÑ 3 ÑекÑндÑ. ÐолÑÑи новÑй ÑеÑез нажаÑие кнопки (Ð²ÐµÐ±Ñ Ñк) |
ÐоÑÑÑпнÑе опеÑаÑии
ÐÑкÑÑÑие пÑедÑÑавлениÑ
POST /views/open
ÑкоÑп:
views:write
{
"type": "modal",
"trigger_id": "791a056b-006c-49dd-834b-c633fde52fe8",
"view": {
"title": "Уведомление об оÑпÑÑке",
"blocks": []
}
}
ÐгÑаниÑÐµÐ½Ð¸Ñ Ð¸ gotchas
type: допÑÑÑимÑе знаÑÐµÐ½Ð¸Ñ âmodal(ÐодалÑное окно)private_metadata: макÑимÑм 3000 Ñимволовcallback_id: макÑимÑм 255 Ñимволовview.title: макÑимÑм 24 Ñимволовview.close_text: макÑимÑм 24 Ñимволовview.submit_text: макÑимÑм 24 Ñимволов- ÐагинаÑиÑ: cursor-based (limit + cursor), ÐÐ page-based
ÐодÑобнее
Ñм. references/endpoints.md