๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

SSAPI๋ฅผ 5๋ถ„ ์•ˆ์— ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

1. API ํ‚ค ๋ฐœ๊ธ‰โ€‹

SSAPI ๋Œ€์‹œ๋ณด๋“œ โ†—์—์„œ ํšŒ์›๊ฐ€์ž… ํ›„ API ํ‚ค๋ฅผ ์‹ ์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ์„œ๋ฒ„๋‚˜ ๋Œ€๊ทœ๋ชจ ์ฝ˜ํ…์ธ ์˜ ๊ฒฝ์šฐ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์šฉ ์ •์ฑ…์„ ํ™•์ธํ•˜์„ธ์š”.

2. ์ŠคํŠธ๋ฆฌ๋จธ ๋“ฑ๋กโ€‹

์†Œ์ผ“๋ฃธ์— ์ŠคํŠธ๋ฆฌ๋จธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ (์ถ”์ฒœ)โ€‹

๊ด€๋ฆฌ์ž ๋Œ€์‹œ๋ณด๋“œ โ†—์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ŠคํŠธ๋ฆฌ๋จธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GUI ๊ธฐ๋ฐ˜ ์ง๊ด€์ ์ธ ๊ด€๋ฆฌ
  • ์ŠคํŠธ๋ฆฌ๋จธ ๋ชฉ๋ก ํ™•์ธ
  • ์‹ค์‹œ๊ฐ„ ํ†ต๊ณ„ ํ™•์ธ

REST API ์‚ฌ์šฉโ€‹

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋จธ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

POST https://api.ssapi.kr/room/streamer
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
"streamerId": "streamer_id",
"platform": "afreeca" # ๋˜๋Š” "chzzk"
}

์ŠคํŠธ๋ฆฌ๋จธ ๋“ฑ๋ก API ๋ฌธ์„œ โ†’

3. ๋ฐ์ดํ„ฐ ์ˆ˜์‹ โ€‹

Socket API (๊ถŒ์žฅ)โ€‹

์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์œผ๋กœ ๋‹ค์ˆ˜ ์ŠคํŠธ๋ฆฌ๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

const io = require('socket.io-client');
const socket = io('https://socket.ssapi.kr');

// ๋กœ๊ทธ์ธ
socket.emit('login', { apiKey: 'YOUR_API_KEY' });

// ์ฑ„ํŒ… ์ˆ˜์‹ 
socket.on('chat', (data) => {
console.log(data);
});

// ํ›„์› ์ˆ˜์‹ 
socket.on('donation', (data) => {
console.log(data);
});

Socket API ์ƒ์„ธ ๋ฌธ์„œ โ†’

REST APIโ€‹

๊ฐ„๋‹จํ•œ HTTP ์š”์ฒญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

GET https://api.ssapi.kr/room/info
Authorization: Bearer YOUR_API_KEY

REST API ์ƒ์„ธ ๋ฌธ์„œ โ†’

๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ์—ฐ๋™โ€‹

๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ์ „์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. GitHub์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ โ†—
  2. plugins/ ํด๋”์— ๋ณต์‚ฌ ํ›„ ์„œ๋ฒ„ ์žฌ์‹œ์ž‘
  3. config.yml์— API ํ‚ค ์ž…๋ ฅ

๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฌธ์„œ โ†—

๋‹ค์Œ ๋‹จ๊ณ„โ€‹