DJ 팔로우
봇 계정으로 이 DJ 를 팔로우해요. 스푼 앱에서 팔로우 버튼을 누른 것과 같은 팔로우예요.
DJ 가 봇을 고정 매니저로 지정하려면 봇 계정이 그 DJ 를 먼저 팔로우하고 있어야 해요. 봇 계정으로 앱에 로그인하지 않고 이 API 로 끝낼 수 있어요.
| 메서드 · 경로 | POST /v1/live/follow |
| 필요한 권한 | dj.follow |
| 성공 응답 | 204 (본문 없음) |
| 방송 중이 아닐 때 | 404 (OAPI_MNGR_0301) |
export SPOON_BASE_URL="https://kr-openapi.spooncast.net"
export SPOON_ACCESS_TOKEN="{발급받은 access token}"
일본 지역이면 https://jp-openapi.spooncast.net 이에요 — 지역별 주소.
요청
POST /v1/live/follow
헤더
| 이름 | 필수 | 설명 |
|---|---|---|
Authorization | ✔ | Bearer {access_token} 형식이에요. |
경로 파라미터 · 쿼리 파라미터 · 요청 바디가 없어요.
누구를 팔로우할지는 토큰이 정해요. 그 토큰에 동의한 DJ 예요. 다른 사람을 팔로우할 수는 없어요.
요청 예시
curl -i -X POST "$SPOON_BASE_URL/v1/live/follow" \
-H "Authorization: Bearer $SPOON_ACCESS_TOKEN"
응답
성공하면 본문 없이 204 예요. 이미 팔로우 중이어도 204 예요.
HTTP/2 204
코드
// follow.ts — node --experimental-strip-types follow.ts
interface ApiError {
detailCode: string;
message: string;
}
const res = await fetch(`${process.env.SPOON_BASE_URL}/v1/live/follow`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.SPOON_ACCESS_TOKEN}` },
});
if (res.status === 204) {
console.log('팔로우했어요. 방송이 끝나면 DJ 에게 고정 매니저 지정을 안내해요.');
} else if (res.status === 404) {
console.log('방송 중이 아니에요. 방송이 시작되면 다시 불러요.');
} else if (res.status === 429) {
console.log('호출 한도에 걸렸어요. 잠시 뒤 다시 불러요.');
} else if (res.status === 401) {
console.error('연동이 끊겼어요. DJ 에게 재연동을 안내해요.');
} else {
// 권한 부족 403 은 앞단에서 막혀 detailCode 가 없어요
const { detailCode, message } = (await res.json()) as Partial<ApiError>;
console.error(`팔로우 실패 ${res.status} ${detailCode ?? '권한 부족'}: ${message ?? ''}`);
}
node --experimental-strip-types follow.ts
주의
방송 중일 때만 돼요. 방송 중이 아니면 404 (OAPI_MNGR_0301) 예요.
팔로우만으로는 매니저가 되지 않아요. 고정 매니저 지정은 DJ 가 스푼 앱에서 직접 해요. 그리고 고정 매니저는 DJ 가 방송 중일 때는 바꿀 수 없어요. 팔로우는 방송 중에만 되니 순서는 이렇게 돼요.
- 방송 중에 봇이 이 API 를 불러 DJ 를 팔로우해요.
- 방송이 끝난 뒤 DJ 가 스푼 앱에서 봇 계정을 고정 매니저로 지정해요.
- 다음 방송에서 봇이 연결하면 매니저 등급으로 들어가
presence이벤트가 와요.
한 번이면 돼요. 이미 팔로우 중이어도 204 라 방송마다 부를 필요가 없어요.
팔로우하면 방송에 보여요. 스푼 앱에서 팔로우할 때와 같이 DJ · 매니저 채팅창에 팔로우 메시지가 뜨고, 이 방송의 신규 팬 수에도 잡혀요.
언팔로우 API 는 없어요. 팔로우를 풀려면 봇 계정으로 스푼 앱에 로그인해 직접 풀어요.
에러
| HTTP | detailCode | 무슨 일인가요 | 어떻게 하나요 |
|---|---|---|---|
401 | 없음 | 토큰이 없거나 무효해요. | DJ 에게 재연동을 안내해요. |
403 | 없음 | dj.follow 권한이 없어요. | 권한을 추가해 재동의를 받아요. |
403 | OAPI_MNGR_0211 | 봇 계정이 이 DJ 를 팔로우할 수 없어요. DJ 가 봇을 차단했을 수 있어요. | 재시도로 안 풀려요. DJ 가 풀어줘야 해요. |
404 | OAPI_MNGR_0301 | 방송 중이 아니에요. | 방송이 시작된 뒤 다시 불러요. |
502 | OAPI_MNGR_2302 | 방송 서버 오류예요. | 백오프 후 재시도해요. |
이 표에 없는 상태도 올 수 있어요. 잘못된 메서드(405, OAPI_MNGR_0103) · 호출 한도(429,
본문 없음) · 서버 오류(500, OAPI_MNGR_1002)는 모든 엔드포인트에 공통이에요 —
에러 코드에 있어요.