13.20
대화 기록 HTML 조회
GET
/<guild_id>/api/transcripts/<ticket_id>/html닫힌 티켓의 저장된 HTML 대화 기록 전체를 내려받습니다. 대시보드가 보여주는 보관본 그대로이며, 모든 메시지, 임베드, 첨부 파일 링크, 프로필 사진이 들어 있습니다. `view_transcript_html` 권한이 필요합니다(기본값은 꺼짐).
질의 매개변수
| 이름 | 형식 | 필수 | 설명 |
|---|---|---|---|
| format | string | 선택 | raw로 지정하면 HTML 파일 자체를 Content-Type: text/html로 받습니다. 그대로 저장하거나 iframe에 넣을 수 있습니다. 지정하지 않으면 대화 기록 메타데이터와 HTML이 함께 담긴 기본 JSON 형태로 받습니다. 오류는 언제나 JSON으로 돌아옵니다. |
이 API에서 가장 민감한 읽기라서 토큰마다 1분에 10번으로 제한되고, 호출할 때마다 서버의 활동 로그에 기록됩니다. 대화 기록은 암호화해서 저장하며 요청할 때마다 복호화합니다. 지나치게 큰 보관본은 413으로 거절되고, 대신 볼 수 있도록 응답에 transcript_url이 들어갑니다.
요청 예시: JSON 형태
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
"https://api.ticketsx.xyz/<guild_id>/api/transcripts/<ticket_id>/html"요청 예시: 파일로 바로 저장하기
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
-o ticket_42.html \
"https://api.ticketsx.xyz/<guild_id>/api/transcripts/<ticket_id>/html?format=raw"응답 예시(기본 JSON)
{
"transcript": {
"TicketId": 42,
"PanelId": 1,
"PanelName": "Support",
"AuthorId": "123456789",
"AuthorUsername": "jane",
"Rating": 5,
"RatingCount": 1,
"CloseReason": "Resolved",
"CreatedAt": 1732200000,
"ClosedAt": 1732210000,
"TranscriptUrl": "https://tickets.example.com/<guild_id>/transcripts/42"
},
"content_type": "text/html; charset=utf-8",
"bytes": 184320,
"html": "<!DOCTYPE html>..."
}