Nextcloud Talk (плагин)

Статус: поддерживается через плагин (бот на вебхуках). Прямые сообщения, комнаты, реакции и сообщения в формате markdown поддерживаются.

Требуется плагин

Nextcloud Talk поставляется как плагин и не входит в базовую установку.

Установка через CLI (npm-реестр):

openclaw plugins install @openclaw/nextcloud-talk

Установка из локальной копии (при работе из git-репозитория):

openclaw plugins install ./extensions/nextcloud-talk

Если вы выбираете Nextcloud Talk во время настройки/онбординга и обнаружен git-checkout, OpenClaw автоматически предложит путь локальной установки.

Подробнее: Плагины

Быстрая настройка (для начинающих)

  1. Установите плагин Nextcloud Talk.

  2. На вашем сервере Nextcloud создайте бота:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Включите бота в настройках целевой комнаты.

  4. Настройте OpenClaw:

    • Конфиг: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Или env: NEXTCLOUD_TALK_BOT_SECRET (только для аккаунта по умолчанию)
  5. Перезапустите шлюз (или завершите онбординг).

Минимальная конфигурация:

{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}

Примечания

  • Боты не могут инициировать ЛС. Пользователь должен написать боту первым.
  • URL вебхука должен быть доступен шлюзу; задайте webhookPublicUrl, если используете прокси.
  • Загрузка медиа не поддерживается Bot API; медиа отправляется как URL.
  • Payload вебхука не различает ЛС и комнаты; задайте apiUser + apiPassword для определения типа комнаты (иначе ЛС обрабатываются как комнаты).

Контроль доступа (ЛС)

  • По умолчанию: channels.nextcloud-talk.dmPolicy = "pairing". Неизвестные отправители получают код спаривания.
  • Подтверждение:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • Публичные ЛС: channels.nextcloud-talk.dmPolicy="open" плюс channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom сопоставляется только с ID пользователей Nextcloud; отображаемые имена игнорируются.

Комнаты (группы)

  • По умолчанию: channels.nextcloud-talk.groupPolicy = "allowlist" (с требованием упоминания).
  • Разрешение комнат через channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Чтобы запретить все комнаты, оставьте список пустым или задайте channels.nextcloud-talk.groupPolicy="disabled".

Возможности

ФункцияСтатус
Прямые сообщенияПоддерживается
КомнатыПоддерживается
Потоки (threads)Не поддерживается
МедиаТолько по URL
РеакцииПоддерживается
Нативные командыНе поддерживается

Справочник конфигурации (Nextcloud Talk)

Полная конфигурация: Конфигурация

Опции провайдера:

  • channels.nextcloud-talk.enabled: включение/выключение канала.
  • channels.nextcloud-talk.baseUrl: URL экземпляра Nextcloud.
  • channels.nextcloud-talk.botSecret: общий секрет бота.
  • channels.nextcloud-talk.botSecretFile: путь к файлу с секретом. Символические ссылки отклоняются.
  • channels.nextcloud-talk.apiUser: API-пользователь для определения типа комнаты (обнаружение ЛС).
  • channels.nextcloud-talk.apiPassword: API/app-пароль для определения типа комнаты.
  • channels.nextcloud-talk.apiPasswordFile: путь к файлу с API-паролем.
  • channels.nextcloud-talk.webhookPort: порт обработчика вебхуков (по умолчанию: 8788).
  • channels.nextcloud-talk.webhookHost: хост вебхука (по умолчанию: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: путь вебхука (по умолчанию: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: внешний URL вебхука.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: список доступа для ЛС (ID пользователей). Для open нужен "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: список доступа для групп (ID пользователей).
  • channels.nextcloud-talk.rooms: настройки и список доступа по комнатам.
  • channels.nextcloud-talk.historyLimit: лимит истории группы (0 отключает).
  • channels.nextcloud-talk.dmHistoryLimit: лимит истории ЛС (0 отключает).
  • channels.nextcloud-talk.dms: переопределения для отдельных ЛС (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: размер исходящего текстового чанка (символы).
  • channels.nextcloud-talk.chunkMode: length (по умолчанию) или newline для разделения по пустым строкам (границы абзацев) перед разбивкой по длине.
  • channels.nextcloud-talk.blockStreaming: отключение блочного стриминга для этого канала.
  • channels.nextcloud-talk.blockStreamingCoalesce: настройка объединения блочного стриминга.
  • channels.nextcloud-talk.mediaMaxMb: лимит входящих медиа (МБ).