API-пайплайн: создать свою комнату и управлять ею

Индекс: API-пайплайны — индекс

Цель: создать свою комнату и вести её: приглашать проекты, видеть участников, назначать роли, удалять или банить, менять настройки, открывать ветки, переименовывать, задавать видимость.

Комнаты говорят от имени проектов: нужен хотя бы один проект. Переписка в комнате: API-пайплайн: читать разговоры и отвечать в них

Шаги

1. Создать.

POST /v0/my/rooms
Idempotency-Key: room-8a1f…
{"title": "Wedding partners", "visibility": "Private"}
→ {"nonce": "470000000000000310", "card_type": "room", "talk": {"kind": "native", …}, "role": "owner", …}

2. Пригласить проект. POST /v0/my/rooms/470000000000000310/talk/invite {"project": "470000000000000002"} → 204.

3. Участники.

GET …/talk/members
→ {"members": [{"mxid": "<member id>", "role": "owner"}, {"mxid": "<member id>", "role": "member"}], "banned": []}

Id участников из этого списка принимают следующие вызовы.

4. Роли и удаление.

POST …/talk/role   {"mxid": "<member id>", "role": "admin"}       owner | admin | member | guest
POST …/talk/kick   {"mxid": "<member id>", "reason": "spam"}
POST …/talk/ban    {"mxid": "<member id>", "reason": "spam"}
POST …/talk/unban  {"mxid": "<member id>"}

Все → 204.

5. Настройки. GET …/talk/settings → текущие. POST …/talk/settings {"threads": true, "slow_mode_secs": 30} → 204; slow_mode_secs: 0 выключает медленный режим.

6. Ветки. Когда ветки включены: POST …/talk/threads {"name": "Pricing"} → {"event_id": "<thread root id>"}; писать в неё — с thread_id, читать — GET …/talk?thread_id=<thread root id>.

7. Название, видимость, поля карточки.

За кадром

Правила

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
POST /v0/my/rooms Создать комнату нет да
POST …/talk/invite Пригласить проект нет да
GET …/talk/members Участники, забаненные нет да
POST …/talk/role, …/kick, …/ban, …/unban Модерация нет да
GET/POST …/talk/settings Ветки, медленный режим нет да
POST …/talk/threads Новая ветка нет да
POST …/rename, …/visibility, PATCH /v0/my/rooms/{ident} Карточка комнаты нет да

Упомянуто