Synology Chat (플러그인)

상태: 플러그인을 통해 Synology Chat 웹훅을 사용하는 다이렉트 메시지 채널로 지원됩니다. 플러그인은 Synology Chat 발신 웹훅에서 인바운드 메시지를 수신하고 수신 웹훅을 통해 응답을 보냅니다.

플러그인 필요

Synology Chat는 플러그인 기반이며 기본 코어 채널에 포함되지 않습니다.

로컬 체크아웃에서 설치:

openclaw plugins install ./extensions/synology-chat

자세한 내용: Plugins

빠른 설정

  1. Synology Chat 플러그인을 설치하고 활성화합니다.
  2. Synology Chat 통합에서:
    • 수신 웹훅을 생성하고 URL을 복사합니다.
    • 시크릿 토큰으로 발신 웹훅을 생성합니다.
  3. 발신 웹훅 URL을 OpenClaw 게이트웨이로 설정합니다:
    • 기본값은 https://gateway-host/webhook/synology입니다.
    • 또는 커스텀 channels.synology-chat.webhookPath를 사용합니다.
  4. OpenClaw에서 channels.synology-chat을 설정합니다.
  5. 게이트웨이를 재시작하고 Synology Chat 봇에 DM을 보냅니다.

최소 설정:

{
  channels: {
    "synology-chat": {
      enabled: true,
      token: "synology-outgoing-token",
      incomingUrl: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=...",
      webhookPath: "/webhook/synology",
      dmPolicy: "allowlist",
      allowedUserIds: ["123456"],
      rateLimitPerMinute: 30,
      allowInsecureSsl: false,
    },
  },
}

환경 변수

기본 계정의 경우 환경 변수를 사용할 수 있습니다:

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS (쉼표로 구분)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

설정 값이 환경 변수보다 우선합니다.

DM 정책 및 접근 제어

  • dmPolicy: "allowlist"가 권장 기본값입니다.
  • allowedUserIds는 Synology 사용자 ID 목록(또는 쉼표로 구분된 문자열)을 허용합니다.
  • allowlist 모드에서 빈 allowedUserIds 목록은 설정 오류로 처리되어 웹훅 라우트가 시작되지 않습니다 (dmPolicy: "open"을 사용하면 전체 허용).
  • dmPolicy: "open"은 모든 발신자를 허용합니다.
  • dmPolicy: "disabled"는 DM을 차단합니다.
  • 페어링 승인은 다음을 사용합니다:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

아웃바운드 전달

Synology Chat 사용자 ID(숫자)를 대상으로 사용합니다.

예시:

openclaw message send --channel synology-chat --target 123456 --text "Hello from OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"

미디어 전송은 URL 기반 파일 전달로 지원됩니다.

다중 계정

channels.synology-chat.accounts에서 여러 Synology Chat 계정을 지원합니다. 각 계정은 토큰, 수신 URL, 웹훅 경로, DM 정책, 제한을 재정의할 수 있습니다.

{
  channels: {
    "synology-chat": {
      enabled: true,
      accounts: {
        default: {
          token: "token-a",
          incomingUrl: "https://nas-a.example.com/...token=...",
        },
        alerts: {
          token: "token-b",
          incomingUrl: "https://nas-b.example.com/...token=...",
          webhookPath: "/webhook/synology-alerts",
          dmPolicy: "allowlist",
          allowedUserIds: ["987654"],
        },
      },
    },
  },
}

보안 참고 사항

  • token은 비밀로 유지하고 유출 시 교체하세요.
  • 자체 서명된 로컬 NAS 인증서를 신뢰하지 않는 한 allowInsecureSsl: false를 유지하세요.
  • 인바운드 웹훅 요청은 토큰 검증과 발신자별 속도 제한이 적용됩니다.
  • 프로덕션에는 dmPolicy: "allowlist"를 권장합니다.