Donutgramплагины
На этой страницеОбъявление возможностей

Возможности и профили

Укажите, какие действия выполняет плагин и в каком контексте.

Объявление возможностей

Каждое нативное действие проверяет capability и точный scope. Манифест объясняет, зачем возможность нужна; причина не расширяет доступ.

{
  "capability": "composer.transform",
  "scope": "activeComposer",
  "reason": "Вставить выбранный шаблон в текущий черновик"
}

Частые возможности

Действие Capability Scope
Команда в меню чата ui.contribute composer
Собственная страница ui.contribute settings
Читать черновик composer.read activeComposer
Изменять черновик composer.transform activeComposer
Читать выбранный текст messages.selection.read activeSelection
Перехватывать исходящий текст messages.intercept activeComposer
Отправлять обычный текст messages.send chosenRecipient
Редактировать сообщение messages.edit selectedMessages
Удалять сообщение для всех messages.delete selectedMessages
Собственные локальные данные storage.local pluginAccount
Публичный HTTPS-запрос network.public declaredOrigins
Локальная трансформация ui.transform profile или chatList

localPrivate

Профиль для локальных сценариев с текущим черновиком, выбранным сообщением и представлением интерфейса. У него нет произвольного сетевого выхода.

publicNetwork

Профиль публичных интеграций. Можно объявить точные HTTPS origins, но нельзя совместить сеть с приватными composer, selection, message и peer-возможностями. Ограничение относится и к optionalPermissions.

Обязательные и дополнительные

При явном включении проверенного пакета хост предоставляет его обязательные возможности для текущего аккаунта. Дополнительные не включаются автоматически и настраиваются отдельно. При установке выключенного плагина код не запускается.

Доступность метода

Декларация capability не означает, что нужный нативный экран сейчас открыт. Для части методов требуется действие пользователя, свежий handle или выбранное сообщение. Обрабатывайте gesture_required, feature_unavailable, permission_denied и изменение контекста.

Обновление

Хост сравнивает точный digest просмотренного пакета. Старое подтверждение не распространяется на новую версию. Не пытайтесь обойти ограничения, передавая в параметры собственные pluginId, accountId или флаги подтверждения.