Synology Chat
상태: Synology Chat 웹훅을 사용하는 번들 plugin 다이렉트 메시지 채널입니다. 이 plugin은 Synology Chat 아웃고잉 웹훅에서 수신 메시지를 받아들이고 Synology Chat 인커밍 웹훅을 통해 응답을 전송합니다.번들 plugin
Synology Chat는 현재 OpenClaw 릴리스에 번들 plugin으로 포함되어 있으므로, 일반적인 패키지 빌드에서는 별도 설치가 필요하지 않습니다. 이전 빌드 또는 Synology Chat가 제외된 사용자 지정 설치를 사용 중이라면, 수동으로 설치하세요: 로컬 체크아웃에서 설치:빠른 설정
- Synology Chat plugin을 사용할 수 있는지 확인합니다.
- 현재 패키지된 OpenClaw 릴리스에는 이미 번들로 포함되어 있습니다.
- 이전/사용자 지정 설치에서는 위 명령으로 소스 체크아웃에서 수동 추가할 수 있습니다.
- 이제
openclaw onboard는openclaw channels add와 동일한 채널 설정 목록에 Synology Chat를 표시합니다. - 비대화형 설정:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- Synology Chat 통합에서 다음을 수행합니다:
- 인커밍 웹훅을 만들고 URL을 복사합니다.
- 비밀 토큰으로 아웃고잉 웹훅을 만듭니다.
- 아웃고잉 웹훅 URL이 OpenClaw 게이트웨이를 가리키도록 설정합니다:
- 기본값:
https://gateway-host/webhook/synology - 또는 사용자 지정
channels.synology-chat.webhookPath
- 기본값:
- OpenClaw에서 설정을 완료합니다.
- 가이드 방식:
openclaw onboard - 직접 방식:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- 가이드 방식:
- 게이트웨이를 재시작하고 Synology Chat 봇에 DM을 보냅니다.
- OpenClaw는 먼저
body.token에서, 그다음?token=...에서, 그다음 헤더에서 아웃고잉 웹훅 토큰을 받아들입니다. - 허용되는 헤더 형식:
x-synology-tokenx-webhook-tokenx-openclaw-tokenAuthorization: Bearer <token>
- 비어 있거나 누락된 토큰은 fail-closed 방식으로 거부됩니다.
환경 변수
기본 계정에는 다음 env var를 사용할 수 있습니다:SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(쉼표로 구분)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
DM 정책 및 액세스 제어
dmPolicy: "allowlist"가 권장 기본값입니다.allowedUserIds는 Synology 사용자 ID 목록(또는 쉼표로 구분된 문자열)을 받습니다.allowlist모드에서 빈allowedUserIds목록은 잘못된 구성으로 처리되며 웹훅 라우트가 시작되지 않습니다(모두 허용하려면dmPolicy: "open"사용).dmPolicy: "open"은 모든 발신자를 허용합니다.dmPolicy: "disabled"는 DM을 차단합니다.- 응답 수신자 바인딩은 기본적으로 안정적인 숫자
user_id에 유지됩니다.channels.synology-chat.dangerouslyAllowNameMatching: true는 변경 가능한 사용자 이름/닉네임 조회를 통한 응답 전달을 다시 활성화하는 비상 호환 모드입니다. - 페어링 승인은 다음과 함께 작동합니다:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
아웃바운드 전달
대상으로 숫자 Synology Chat 사용자 ID를 사용하세요. 예시:다중 계정
여러 Synology Chat 계정이channels.synology-chat.accounts 아래에서 지원됩니다.
각 계정은 토큰, 인커밍 URL, 웹훅 경로, DM 정책 및 제한을 재정의할 수 있습니다.
다이렉트 메시지 세션은 계정 및 사용자별로 격리되므로, 서로 다른 두 Synology 계정에서 동일한 숫자 user_id를 사용하더라도 대화 기록 상태를 공유하지 않습니다.
활성화된 각 계정에는 고유한 webhookPath를 지정하세요. 이제 OpenClaw는 중복되는 정확한 경로를 거부하며,
다중 계정 설정에서 공유 웹훅 경로만 상속하는 이름 있는 계정은 시작을 거부합니다.
이름 있는 계정에 의도적으로 레거시 상속이 필요하다면
해당 계정 또는 channels.synology-chat에 dangerouslyAllowInheritedWebhookPath: true를 설정하세요.
단, 중복되는 정확한 경로는 여전히 fail-closed 방식으로 거부됩니다. 계정별 명시적 경로를 권장합니다.
보안 참고 사항
token은 비밀로 유지하고 유출되면 교체하세요.- 자체 서명된 로컬 NAS 인증서를 명시적으로 신뢰하는 경우가 아니라면
allowInsecureSsl: false를 유지하세요. - 수신 웹훅 요청은 토큰 검증 및 발신자별 속도 제한이 적용됩니다.
- 잘못된 토큰 검사는 상수 시간 비밀 비교를 사용하며 fail-closed 방식으로 처리됩니다.
- 프로덕션에서는
dmPolicy: "allowlist"를 권장합니다. - 레거시 사용자 이름 기반 응답 전달이 명시적으로 필요한 경우가 아니라면
dangerouslyAllowNameMatching을 끄세요. - 다중 계정 설정에서 공유 경로 라우팅 위험을 명시적으로 수용하는 경우가 아니라면
dangerouslyAllowInheritedWebhookPath를 끄세요.
문제 해결
Missing required fields (token, user_id, text):- 아웃고잉 웹훅 페이로드에 필수 필드 중 하나가 없습니다
- Synology가 헤더로 토큰을 보낸다면 게이트웨이/프록시가 해당 헤더를 보존하는지 확인하세요
Invalid token:- 아웃고잉 웹훅 비밀이
channels.synology-chat.token과 일치하지 않습니다 - 요청이 잘못된 계정/웹훅 경로로 들어오고 있습니다
- 요청이 OpenClaw에 도달하기 전에 리버스 프록시가 토큰 헤더를 제거했습니다
- 아웃고잉 웹훅 비밀이
Rate limit exceeded:- 동일한 소스에서 너무 많은 잘못된 토큰 시도가 있으면 해당 소스가 일시적으로 차단될 수 있습니다
- 인증된 발신자에게도 별도의 사용자별 메시지 속도 제한이 적용됩니다
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open.:dmPolicy="allowlist"가 활성화되었지만 구성된 사용자가 없습니다
User not authorized:- 발신자의 숫자
user_id가allowedUserIds에 없습니다
- 발신자의 숫자