본문으로 건너뛰기

웹훅 — 여러분의 시스템에 실시간 모더레이션 이벤트를

스팸 탐지, 차단, 내보내기, 음소거, 참여 또는 이탈 이벤트를 여러분의 URL로 받는 Telm 웹훅을 구독하세요. HMAC-SHA256으로 서명되고 재시도됩니다. Pro+.

읽는 데 8분
요약

웹훅은 모더레이션 이벤트가 발생하는 순간 여러분의 URL로 밀어 줍니다 — 스팸 탐지, 차단, 내보내기, 음소거, 그리고 멤버 참여 또는 이탈입니다. 각 전송은 HMAC-SHA256으로 서명되고(whsec_ 비밀 값으로 검증), 중복 제거를 위한 안정적인 전송 id를 지니며, 서버에 도달할 수 없으면 일정에 따라 재시도됩니다. 웹훅은 Pro 요금제 이상에 속합니다.

「개발자」 페이지에서 API 키와 웹훅을 생성합니다.

1웹훅이 하는 일

API를 폴링하는 대신 URL을 등록하면, 그룹에서 무언가 일어날 때마다 Telm이 서명된 HTTP POST를 그리로 보냅니다. 이것이 모더레이션 이벤트를 여러분 자신의 시스템 — 대시보드, 데이터 웨어하우스, 알림 채널 — 에 실시간으로 가져오는 방법입니다.

웹훅 엔드포인트는 API를 통해 관리합니다: URL을 등록하고, 구독할 이벤트를 고르고, 선택적으로 특정 그룹으로 한정하고, 테스트 핑을 보내고, 최근 전송 로그를 읽습니다.

웹훅에는 Pro 요금제 이상이 필요합니다(전체 REST API와 같은 게이트). Free와 Basic에서도 스팸 검사 엔드포인트는 시험할 수 있지만, 웹훅은 등록할 수 없습니다.

2왜 밀어 주는 것이 폴링을 이기는가

새 이벤트를 찾으려고 기록 엔드포인트를 타이머로 호출할 수도 있지만, 그것은 지연을 더하고, 할당량을 쓰고, 무언가 일어나는 바로 그 순간을 놓칠 수 있습니다. 웹훅은 모델을 뒤집습니다: Telm이 이벤트가 발생하는 즉시 알려 주므로 여러분의 시스템이 몇 초 안에 반응합니다.

전형적인 용도로는 차단을 여러분 자신의 관리 도구로 반영하기, 레이드가 탐지되면 팀 채널에 알리기, 탐지를 분석으로 스트리밍하기, 또는 멤버가 참여하거나 이탈할 때 워크플로를 트리거하기 등이 있습니다.

  • 실시간: 다음 폴링 때가 아니라 이벤트가 발생할 때 알게 됩니다.
  • 효율적: 일일 할당량을 갉아먹는 반복 읽기가 없습니다.
  • 완전함: 전송이 재시도되므로, 여러분 쪽의 짧은 장애가 이벤트를 잃지 않습니다.

3구독할 수 있는 이벤트

구독 가능한 이벤트 유형은 일곱 가지로, 스팸 판정, 처벌, 멤버십 변경을 다룹니다. 하나의 모더레이션된 메시지가 둘 이상의 이벤트를 낼 수 있습니다 — 차단으로 끝나는 스팸 메시지는 spam.detected와 user.banned를 모두 발생시킵니다.

  • spam.detected — 엔진이 메시지를 스팸으로 표시했습니다.
  • message.suspicious — 점수가 있는 섀도(모니터링 모드) 탐지입니다.
  • user.banned — 멤버가 차단되었습니다.
  • user.kicked — 멤버가 내보내졌습니다.
  • user.muted — 멤버가 음소거되었습니다.
  • user.joined — 멤버가 그룹에 참여했습니다.
  • user.left — 멤버가 그룹을 떠났습니다.
테스트 호출에서만 쓰이는 ping 이벤트도 있어서, 실제 이벤트가 흐르기 전에 여러분의 엔드포인트가 전송을 받고 검증하는지 확인할 수 있습니다. 전체 페이로드는 웹훅 이벤트 레퍼런스에 문서화되어 있습니다.

4페이로드 봉투

모든 전송은 작고 안정적인 최상위 필드 집합과 그 안의 이벤트별 data 객체를 담은 JSON 봉투입니다. 세부 사항을 파싱하기 전에 유형과 시각으로 라우팅할 수 있습니다.

  • id — 고유한 전송 id입니다. 같은 이벤트의 재전송은 같은 id를 재사용하며, 이것이 중복을 제거하는 방법입니다.
  • type — 이벤트 유형으로, 위 일곱 가지 중 하나입니다.
  • created_at — 이벤트가 발생한 시각으로, RFC3339 UTC 형식입니다.
  • group_id — 이벤트가 속한 그룹입니다(해당하는 경우).
  • data — 이벤트별 객체입니다: 스팸 이벤트의 메시지 및 판정 세부 정보, 멤버십 이벤트의 멤버 세부 정보.

5전송이 정말 Telm에서 온 것인지 검증하기

모든 전송은 서명되어 있어, 여러분의 서버가 요청이 진짜로 Telm에서 왔고 전송 중에 변조되지 않았음을 확인할 수 있습니다. 페이로드를 신뢰하기 전에 서명을 검증하고, 일치하지 않는 것은 무엇이든 거부하세요.

서명은 타임스탬프와 원본 요청 본문의 HMAC-SHA256이며, 여러분의 엔드포인트 서명 비밀 값으로 키가 지정됩니다. 검증하려면 타임스탬프 헤더와 받은 정확한 바이트에 대해 HMAC을 다시 계산하고, 이를 서명 헤더와 비교하세요.

  • X-Telm-Signature — 서명으로, v1 뒤에 타임스탬프와 본문을 이은 것의 16진수 HMAC-SHA256이 붙는 형식입니다.
  • X-Telm-Timestamp — 서명되는 유닉스 초 단위 타임스탬프로, 오래되거나 재생된 전송을 거부할 수 있습니다.
  • X-Telm-Event — 이벤트 유형이며, X-Telm-Delivery — 중복 제거를 위한 전송 id입니다.
  • 서명 비밀 값은 엔드포인트를 만들 때 한 번만 표시되며 whsec_로 시작합니다. 안전하게 저장하세요. 전송이 진짜임을 증명하는 유일한 것입니다.
서명 검증을 절대 건너뛰지 마세요. 그것 없이는 여러분의 URL을 추측한 누구든 가짜 이벤트를 보낼 수 있습니다. 단계별 검증 방법은 웹훅 이벤트 레퍼런스에 있습니다.

6신뢰할 수 있고 중복이 제거된 전송

전송은 최소 한 번(at-least-once)입니다: Telm은 이벤트가 여러분에게 도달하도록 보장하며, 이는 같은 이벤트가 가끔 두 번 도착할 수 있다는 뜻입니다. 모든 재전송이 같은 전송 id를 재사용하므로, 처리한 id를 저장하고 반복을 건너뛰어 중복을 제거하세요.

여러분의 엔드포인트에 도달할 수 없거나 오류를 반환하면, 전송이 고정된 일정에 따라 재시도됩니다 — 대략 1분, 5분, 30분, 2시간, 6시간 후로, 약 8시간 30분에 걸쳐 최대 6회입니다. 계속 실패하는 엔드포인트는 양쪽을 보호하기 위해 자동으로 비활성화되고 소유자에게 통지됩니다.

  • 2xx 상태로 빠르게 응답하세요. 확인한 뒤 무거운 작업은 비동기로 처리하세요.
  • 전송 id로 중복을 제거하세요 — 절대 페이로드 내용으로 하지 마세요.
  • 72시간 창 안에서 한 번도 성공 없이 약 스무 번 연속 실패하는 엔드포인트는 자동 비활성화됩니다. 서버가 정상이 되면 다시 활성화하세요.

7엔드포인트 관리와 로그 읽기

웹훅 엔드포인트는 API를 통해 등록하고, 편집하고, 제거합니다. 엔드포인트를 만들면 서명 비밀 값을 정확히 한 번 받고, 구독할 이벤트를 고르고, 선택적으로 특정 그룹으로 범위를 한정합니다. 테스트 호출은 서명된 핑을 보내므로, 실제 트래픽이 시작되기 전에 검증이 작동하는지 확인할 수 있습니다.

각 엔드포인트는 무엇이 언제 보내졌고 성공했는지 되돌아 볼 수 있는 전송 로그를 유지합니다 — 다음 실시간 이벤트를 기다리지 않고 수신기를 디버깅하는 데 유용합니다.

  • 엔드포인트를 만들고 whsec_ 비밀 값을 즉시 복사하세요.
  • 테스트 핑을 보내 서명 검사를 처음부터 끝까지 검증하세요.
  • 엔드포인트를 한 그룹으로 한정하거나, 여러분이 관리하는 모든 그룹에 열어 두세요.
  • 전송 로그를 읽어 최근 시도와 그 결과를 살펴보세요.

8모범 사례와 흔한 실수

견고한 수신기는 가장 흔한 문제를 막는 몇 가지 규칙을 따릅니다.

  • 원본 본문 바이트에 대해 서명을 검증하세요 — 먼저 JSON으로 파싱하고 다시 직렬화하면 바이트가 바뀌어 검사가 깨질 수 있습니다.
  • 2xx를 빠르게 반환하고 나중에 처리하세요. 느린 핸들러는 타임아웃과 불필요한 재시도를 유발합니다.
  • 재전송된 이벤트가 중복 집계되지 않도록 처리를 멱등하게 만드세요.
  • 공개적으로 도달 가능한 URL에서 HTTPS를 쓰세요. Telm은 내부 및 사설 주소를 차단하고 리다이렉트를 따르지 않습니다.
  • whsec_ 비밀 값을 로그와 클라이언트 코드에서 빼내세요.
웹훅은 여러분 시스템을 위해 이벤트를 포착하지만, Telm 내부의 권위 있는 기록은 여전히 모더레이션 기록입니다.
이 도움말이 유용했나요?

그룹을 보호할 준비가 되셨나요?

Telegram 그룹에 Telm을 추가하고 스팸 처리를 맡기세요.