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

  • SUBSCRIPTION

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

  • SUBSCRIPTION

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

*

μ„Έμ…˜ μ‹λ³„μž

이벀트 ꡬ독(ꡬ독)

μš”μ²­ν•œ μ„Έμ…˜μ— μ‚¬μš©μžμ˜ ꡬ독 이벀트λ₯Ό κ΅¬λ…ν•©λ‹ˆλ‹€. ꡬ독이 μ™„λ£Œλ  경우 μš”μ²­ν•œ μ„Έμ…˜μœΌλ‘œ 이벀트 ꡬ독 λ©”μ‹œμ§€κ°€ 전달 λ©λ‹ˆλ‹€. 이벀트 ꡬ독 μ‹œ, κ΅¬λ…ν•œ 채널에 ꡬ독이 λ°œμƒν•  λ•Œ ꡬ독 이벀트 λ©”μ‹œμ§€κ°€ μ „λ‹¬λ©λ‹ˆλ‹€.

κ΄€λ ¨ Scope : 후원 쑰회

*μ„Έμ…˜λ‹Ή μ΅œλŒ€ 30개의 이벀트(μ±„νŒ…, 후원, ꡬ독)λ₯Ό ꡬ독할 수 μžˆμŠ΅λ‹ˆλ‹€.

HTTP Request
Description

POST /open/v1/sessions/events/subscribe/subscription

이벀트 ꡬ독(ꡬ독)

Request Param

Field
Type
Required
Description

sessionKey

String

*

μ„Έμ…˜ μ‹λ³„μž

이벀트 ꡬ독 μ·¨μ†Œ(ꡬ독)

μš”μ²­ν•œ μ„Έμ…˜μ— μ‚¬μš©μžμ˜ ꡬ독 이벀트λ₯Ό ꡬ독 μ·¨μ†Œν•©λ‹ˆλ‹€. ꡬ독이 μ·¨μ†Œλ  경우 μš”μ²­ν•œ μ„Έμ…˜μœΌλ‘œ 이벀트 ꡬ독 μ·¨μ†Œ λ©”μ‹œμ§€κ°€ 전달 λ©λ‹ˆλ‹€.

HTTP Request
Description

POST /open/v1/sessions/events/unsubscribe/subscription

이벀트 ꡬ독 μ·¨μ†Œ(ꡬ독)

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

  • SUBSCRIPTION

channelId

String

이벀트 채널 ID(채널 μ‹λ³„μž)

μ‹œμŠ€ν…œ λ©”μ‹œμ§€(이벀트 ꡬ독 μ·¨μ†Œ λ©”μ‹œμ§€)

이벀트 ꡬ독이 μ·¨μ†Œ λ˜μ—ˆμ„ λ•Œ μ „λ‹¬λ©λ‹ˆλ‹€.

Message Body

Field
Type
Description

type

String

unsubscribed

data

Object

μ‹œμŠ€ν…œ λ©”μ‹œμ§€ 정보

eventType

String

이벀트 μ’…λ₯˜

  • CHAT

  • DONATION

  • SUBSCRIPTION

channelId

String

이벀트 채널 ID(채널 μ‹λ³„μž)

μ‹œμŠ€ν…œ λ©”μ‹œμ§€(이벀트 κΆŒν•œ μ·¨μ†Œ λ©”μ‹œμ§€)

μ‚¬μš©μžμ˜ λ™μ˜ 철회, μŠ€μ½”ν”„ λ³€κ²½ λ“± κΆŒν•œ 회수둜 이벀트 ꡬ독이 μ·¨μ†Œ λ˜μ—ˆμ„ λ•Œ μ „λ‹¬λ©λ‹ˆλ‹€.

Message Body

Field
Type
Description

type

String

revoked

data

Object

μ‹œμŠ€ν…œ λ©”μ‹œμ§€ 정보

eventType

String

이벀트 μ’…λ₯˜

  • CHAT

  • DONATION

  • SUBSCRIPTION

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

인증여뢀

userRoleCode

String

μœ μ € 채널 κΆŒν•œ

  • streamer : 슀트리머

  • common_user : 일반 μœ μ €

  • streaming_channel_manager : 채널 κ΄€λ¦¬μž

  • streaming_chat_manager : μ±„νŒ… 운영자

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

ꡬ독 이벀트 λ©”μ‹œμ§€(ꡬ독 이벀트 λ©”μ‹œμ§€)

κ΅¬λ…ν•œ μ±„λ„μ˜ ꡬ독 λ©”μ‹œμ§€κ°€ μ „λ‹¬λ©λ‹ˆλ‹€.

Event Type : SUBSCRIPTION

Message Body

Field
Type
Description

channelId

String

이벀트 채널 ID(채널 μ‹λ³„μž)

subscriberChannelId

String

κ΅¬λ…μž 채널 ID

subscriberNickname

String

κ΅¬λ…μž λ‹‰λ„€μž„

tierNo

Int

ꡬ독 μƒν’ˆ

  • 1 (ν‹°μ–΄1 ꡬ독)

  • 2 (ν‹°μ–΄2 ꡬ독)

tierName

String

ꡬ독 λΈŒλžœλ“œλͺ…

month

Int

μ‚¬μš©λœκ΅¬λ… κΈ°κ°„μΉ˜μ§€μ§ 이λͺ¨ν‹°μ½˜ 정보

Last updated