Skip to main content
X는 페이로드에 암호문을 포함하여 chat.received, chat.sent 및 관련 X Chat 활동을 전달합니다. Chat XDK로 복호화하세요. 비공개 X Chat 이벤트 유형은 모니터링하는 사용자에 대한 승인이 필요합니다. 암호화된 X Chat 파일 첨부는 **media_hash_key**와 X Chat 미디어 다운로드를 사용합니다—Post API의 expansions=attachments.media_keys / media.fields=variants가 아닙니다.

이벤트 유형


1. 전달 방식 선택

활동 스트림 (봇에 종종 가장 간단함): 앱 Bearer 토큰과 함께 GET /2/activity/stream을 사용합니다 (OpenAPI에 따라 선택적 backfill_minutes, start_time, end_time). 클라이언트 측에서 chat.received / chat.sent를 필터링하세요. 활동 구독: 다음으로 지속적인 구독을 관리합니다:
  • POST /2/activity/subscriptions — 생성
  • GET /2/activity/subscriptions — 목록 (페이지네이션됨)
  • PUT /2/activity/subscriptions/{subscription_id} — 업데이트
  • DELETE /2/activity/subscriptions/{subscription_id} 또는 DELETE /2/activity/subscriptions?ids= — 삭제
요청 본문과 필요한 스코프는 각 경로의 OpenAPI 작업에 정의되어 있습니다. X Activity API (XAA) 구독을 생성하려면 모니터링하는 사용자에 대한 사용자 컨텍스트 승인(관련 스코프를 포함한 OAuth 2.0 사용자 컨텍스트, 예: 채팅 이벤트의 경우 dm.read)이 필요합니다. 웹훅: HTTPS 엔드포인트에서 이벤트를 종료하는 경우, POST /2/webhooks로 웹훅을 등록하고 CRC 챌린지를 통과한 다음 webhook_id를 참조하여 POST /2/activity/subscriptions로 활동 구독을 생성합니다 (OpenAPI의 Webhooks 및 Activity 작업 참조). Python/TypeScript XDK는 SDK 버전에 포함되어 있을 때 웹훅 및 활동에 대한 헬퍼를 노출할 수 있습니다.
발신 사본이 필요한 경우 chat.sent도 구독하세요. 다른 언어: 동일한 /2/activity/* HTTPS 경로를 직접 호출하세요 (구독 생성에는 사용자 컨텍스트 토큰, 스트림에는 앱 Bearer 토큰).

2. CRC (웹훅 전용)

웹훅을 사용하는 경우, 소비자 시크릿을 사용한 토큰의 HMAC-SHA256으로 챌린지-응답 검사(GET crc_token)에 응답하세요. 이는 웹훅 제품이 기대하는 JSON 형태(일반적으로 sha256=<base64>)여야 합니다.

3. Chat XDK로 복호화

실시간 필드: payload.encoded_event, 선택적 payload.conversation_key_change_event. **event_uuid**로 중복을 제거하세요. JavaScript는 camelCase 이벤트 유형(message)을 사용합니다; 다른 바인딩은 "Message"와 snake_case 필드를 사용합니다.
이력: GET /2/chat/conversations/{id}/events + decrypt_events시작하기를 참조하세요.

페이로드 형태 (실시간)


관행

  • 플랫폼 요구 사항에 따라 웹훅 서명을 검증하세요
  • 대화 키와 발신자 공개 키를 캐시하세요
  • 의존 메시지를 복호화하기 전에 키 변경 blob을 적용하세요
  • event_uuid로 중복을 제거하세요