Session

세션 생성, 세션 목록 조회, 이벤트 구독 및 취소를 할 수 있습니다. 세션 API 중 아래 API Scope를 호출하려면 사용자 계정으로 인증하여 얻은 Access Token이 필요합니다. API Scope는 채팅 메시지 조회, 후원 조회입니다.


세션 생성(클라이언트)

Client 인증을 통해 소켓 연결을 위한 URL을 요청합니다. 생성된 URL은 일정 시간 동안만 유효합니다. 최대 10개의 연결을 유지할 수 있습니다. 세션 생성(클라이언트)를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. (Client 인증 API 참조)

HTTP Request
Description

GET /open/v1/sessions/auth/client

세션 생성(클라이언트)

Response Body

Field
Type
Description

url

String

소켓 연결을 위한 URL

세션 생성(유저)

Access Token 인증을 통해 소켓 연결을 위한 URL을 요청합니다. 생성된 URL은 일정 시간 동안만 유효합니다. 연결된 세션은 세션 생성에 사용된 Access Token과 동일한 유저 이벤트만 구독할 수 있습니다. 유저별 최대 3개의 연결을 유지할 수 있습니다

HTTP Request
Description

GET /open/v1/sessions/auth

세션 생성(유저)

Response Body

Field
Type
Description

url

String

소켓 연결을 위한 URL

세션 연결 가이드

Socket.IO-client 1.0.0+ 2.0.3 버전까지 지원합니다.

소켓 연결

// api를 통해 얻은 연결 url
const sessionURL = 'https://ssio08.nchat.naver.com:443?auth=TOKEN';
 
// 옵션 설정
const socketOption = {
      reconnection: false,
      'force new connection': true,
      'connect timeout': 3000,
      transports: ['websocket'],
};
 
 
// ...
 
// 세션 연결
socket = io.connect(sessionURL, socketOption)
socket.on('connect', function() { 
              // on connected
       });

연결이 완료될 경우 세션으로 연결 완료 메시지가 전달 됩니다. 해당 메시지의 sessionKey 값을 통해 연결된 세션에 이벤트를 구독할 수 있습니다.

메시지 수신

// eventType 메시지
socket.on("SYSTEM", function(data) {
    /* on system event */
});

세션 목록 조회(클라이언트)

Client 인증 기반의 생성된 세션을 조회합니다. 연결이 끊어진 세션은 일정 시간 동안만 조회가 가능합니다. 세션 목록 조회(클라이언트)를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. (Client 인증 API 참조)

HTTP Request
Description

GET /open/v1/sessions/client

세션 목록 조회(클라이언트)

Request Param

Field
Type
Description

size

Int

조회할 세션 개수. 최소 1 ~ 최대 50 요청 가능

default : 20

page

String

조회할 페이지. 0부터 조회 가능

default : 0

Response Body

Field
Type
Description

data

Object[]

세션 목록 결과

sessionKey

String

세션 식별자

connectedDate

String

연결 시간

disconnectedDate

String

연결 해제 시간

subscribedEvents

Object[]

구독 이벤트 목록

eventType

String

이벤트 종류

  • CHAT

  • DONATION

channelId

String

이벤트 채널 ID(채널 식별자)

세션 목록 조회(유저)

Access Token 인증 기반의 생성된 세션을 조회합니다. 연결이 끊어진 세션은 일정 시간 동안만 조회 가능합니다.

HTTP Request
Description

GET /open/v1/sessions

세션 목록 조회(유저)

Request Param

Field
Type
Description

size

Int

조회할 세션 개수. 최소 1 ~ 최대 50 요청 가능

default : 20

page

String

조회할 페이지. 0부터 조회 가능

default : 0

Response Body

Field
Type
Description

data

Object[]

세션 목록 결과

sessionKey

String

세션 식별자

connectedDate

String

연결 시간

disconnectedDate

String

연결 해제 시간

subscribedEvents

Object[]

구독 이벤트 목록

eventType

String

이벤트 종류

  • CHAT

  • DONATION

channelId

String

이벤트 채널 ID(채널 식별자)


이벤트 구독(채팅)

요청한 세션에 사용자의 채팅 이벤트를 구독합니다. 구독이 완료될 경우 요청한 세션으로 이벤트 구독 메시지가 전달 됩니다. 채팅 이벤트 구독 시, 구독한 채널에 채팅이 발생할 때 채팅 이벤트 메시지가 전달됩니다.

관련 Scope : 채팅 메시지 조회

*세션당 최대 30개의 이벤트(채팅 및 후원)를 구독할 수 있습니다.

HTTP Request
Description

POST /open/v1/sessions/events/subscribe/chat

이벤트 구독(채팅)

Request Param

Field
Type
Required
Description

sessionKey

String

*

세션 식별자

이벤트 구독 취소(채팅)

요청한 세션에 사용자의 채팅 이벤트를 구독 취소합니다. 구독이 취소될 경우 요청한 세션으로 이벤트 구독 취소 메시지가 전달 됩니다.

HTTP Request
Description

POST /open/v1/sessions/events/unsubscribe/chat

이벤트 구독 취소(채팅)

Request Param

Field
Type
Required
Description

sessionKey

String

*

세션 식별자

이벤트 구독(후원)

요청한 세션에 사용자의 후원 이벤트를 구독합니다. 구독이 완료될 경우 요청한 세션으로 이벤트 구독 메시지가 전달 됩니다. 이벤트 구독 시, 구독한 채널에 후원이 발생할 때 후원 이벤트 메시지가 전달됩니다.

관련 Scope : 후원 조회

*세션당 최대 30개의 이벤트(채팅 및 후원)를 구독할 수 있습니다.

HTTP Request
Description

POST /open/v1/sessions/events/subscribe/donation

이벤트 구독(후원)

Request Param

Field
Type
Required
Description

sessionKey

String

*

세션 식별자

이벤트 구독 취소(후원)

요청한 세션에 사용자의 후원 이벤트를 구독 취소합니다. 구독이 취소될 경우 요청한 세션으로 이벤트 구독 취소 메시지가 전달 됩니다.

HTTP Request
Description

POST /open/v1/sessions/events/unsubscribe/donation

이벤트 구독 취소(후원)

Request Param

Field
Type
Required
Description

sessionKey

String

*

세션 식별자


세션 메시지

세션으로 전달되는 메시지에는 시스템 메시지, 구독 이벤트 메시지가 존재합니다.

시스템 메시지(공통)

Event Type : SYSTEM

Message Body

Field
Type
Description

type

String

시스템 메시지 종류

  • connected

  • subscribed

  • unsubscribed

  • revoked

data

Object

시스템 메시지 정보

시스템 메시지(연결 완료 메시지)

소켓 연결이 정상적으로 완료 되었을 때 전달됩니다. 전달된 세션 식별자를 통해 이벤트를 구독/취소 할 수 있습니다.

Message Body

Field
Type
Description

type

String

connected

data

Object

시스템 메시지 정보

sessionKey

String

세션 식별자

시스템 메시지(이벤트 구독 메시지)

이벤트 구독이 완료 되었을 때 전달됩니다.

Message Body

Field
Type
Description

type

String

subscribed

data

Object

시스템 메시지 정보

eventType

String

이벤트 종류

  • CHAT

  • DONATION

channelId

String

이벤트 채널 ID(채널 식별자)

시스템 메시지(이벤트 구독 취소 메시지)

이벤트 구독이 취소 되었을 때 전달됩니다.

Message Body

Field
Type
Description

type

String

unsubscribed

data

Object

시스템 메시지 정보

eventType

String

이벤트 종류

  • CHAT

  • DONATION

channelId

String

이벤트 채널 ID(채널 식별자)

시스템 메시지(이벤트 권한 취소 메시지)

사용자의 동의 철회, 스코프 변경 등 권한 회수로 이벤트 구독이 취소 되었을 때 전달됩니다.

Message Body

Field
Type
Description

type

String

revoked

data

Object

시스템 메시지 정보

eventType

String

이벤트 종류

  • CHAT

  • DONATION

channelId

String

이벤트 채널 ID(채널 식별자)

구독 이벤트 메시지(채팅 이벤트 메시지)

구독한 채널의 채팅 메시지가 전달됩니다.

Event Type : CHAT

Message Body

Field
Type
Description

channelId

String

이벤트 채널 ID(채널 식별자)

senderChannelId

String

채팅 메시지 작성자 채널 ID

profile

Object

채팅 메시지 작성자 프로필 정보

nickname

String

닉네임

badges

Object[]

배지

verifiedMark

boolean

인증여부

content

String

채팅 메시지 내용

emojis

Map

사용된 치지직 이모티콘 정보

key

String

치지직 이모티콘 식별자

value

String

치지직 이모티콘 URL

messageTime

Int64

메시지 시간 (ms)

구독 이벤트 메시지(후원 이벤트 메시지)

구독한 채널의 후원 메시지가 전달됩니다.

Event Type : DONATION

Message Body

Field
Type
Description

donationType

String

후원 종류

  • CHAT

  • VIDEO

channelId

String

이벤트 채널 ID(채널 식별자)

donatorChannelId

String

후원자 채널 ID

donatorNickname

String

후원자 닉네임

payAmount

String

후원 금액 (원)

donationText

String

후원 메시지 내용

emojis

Map

사용된 치지직 이모티콘 정보

key

String

치지직 이모티콘 식별자

value

String

치지직 이모티콘 URL

Last updated