Nextcloud Talk (плагин)

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

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

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

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

openclaw plugins install @openclaw/nextcloud-talk

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

openclaw plugins install ./extensions/nextcloud-talk

Если вы выбираете Nextcloud Talk во время настройки/онбординга и обнаружен git-репозиторий, 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
    • Или окружение: NEXTCLOUD_TALK_BOT_SECRET (только учетная запись по умолчанию)
  5. Перезапустите шлюз (или завершите онбординг).

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

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

Примечания

  • Боты не могут инициировать личные сообщения. Пользователь должен сначала отправить сообщение боту.
  • URL webhook должен быть доступен для Gateway; установите webhookPublicUrl, если за прокси.
  • Загрузки медиа не поддерживаются bot API; медиа отправляется как URL.
  • Полезная нагрузка webhook не различает личные сообщения и комнаты; установите 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=["*"].

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

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

Возможности

ФункцияСтатус
Личные сообщенияПоддерживается
КомнатыПоддерживается
ТредыНе поддерживается
МедиаТолько 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/приложения для поиска комнат.
  • channels.nextcloud-talk.apiPasswordFile: путь к файлу пароля API.
  • channels.nextcloud-talk.webhookPort: порт слушателя webhook (по умолчанию: 8788).
  • channels.nextcloud-talk.webhookHost: хост webhook (по умолчанию: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: путь webhook (по умолчанию: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: внешне доступный URL webhook.
  • 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: лимит входящих медиа (МБ).