Donutgramплагины
На этой страницеНастройки и данные

Сохранение настроек

Схема описывает значения, API читает и сохраняет их для текущего аккаунта.

Настройки и данные

Для пользовательских параметров используйте settingsSchema и api.settings. Для внутренних записей плагина предназначен отдельный api.storage.

Объявить поля

Добавьте объект в манифест:

{
  "settingsSchema": {
    "type": "object",
    "properties": {
      "enabled": { "type": "boolean", "title": "Использовать шаблон", "default": true },
      "template": { "type": "string", "title": "Шаблон", "default": "Привет!", "maxLength": 4096 },
      "count": { "type": "integer", "title": "Количество", "default": 1, "minimum": 1, "maximum": 10 }
    }
  }
}

Это фрагмент полного манифеста. Приложение создаёт нативные элементы настроек по типам полей.

Читать значения

const settings = await api.settings.get();
const text = typeof settings.template === "string" ? settings.template : "Привет!";

Сохранять значения

const settings = await api.settings.get();
await api.settings.set({ ...settings, template: "Новый шаблон" });

Передаваемые значения должны соответствовать схеме: типу, диапазону, enum и максимальной длине. Сохраняйте остальные поля при изменении одного параметра.

Разные аккаунты

Настройки относятся к установке и аккаунту. Не переносите значение из одного аккаунта в другой через глобальный объект плагина. Подробнее — несколько аккаунтов.

Что не сохранять

Handles черновиков, сообщений, страниц, изображений и callback ID действуют ограниченное время и не подходят для постоянного хранения. Сохраняйте исходные данные, по которым можно заново создать нужный ресурс.

Внутренние записи без UI-поля храните через storage с соответствующей возможностью.