본문으로 건너뛰기

DJ 식별자 조회

내 토큰이 어느 DJ 의 것인지 조회해요. 방송 여부와 관계없이 언제든 돼요.

같은 DJ 가 다시 동의하면 토큰 쌍이 새로 나오고 이전 토큰도 유효하게 남아요. 토큰을 받자마자 이 API 로 userId 를 저장해 두면, 같은 DJ 의 토큰이 여러 벌 생겨도 하나로 합칠 수 있어요.

메서드 · 경로GET /v1/me
필요한 권한me.read
성공 응답200
방송 중이 아닐 때그대로 200 — 방송과 무관해요
export SPOON_BASE_URL="https://kr-openapi.spooncast.net"
export SPOON_ACCESS_TOKEN="{발급받은 access token}"

일본 지역이면 https://jp-openapi.spooncast.net 이에요 — 지역별 주소.

요청​

GET /v1/me

헤더​

이름필수설명
Authorization✔Bearer {access_token} 형식이에요.

경로 파라미터 · 쿼리 파라미터 · 요청 바디가 없어요.

누구의 식별자를 받는지는 토큰이 정해요. 그 토큰에 동의한 DJ 예요.

요청 예시​

curl -H "Authorization: Bearer $SPOON_ACCESS_TOKEN" "$SPOON_BASE_URL/v1/me"

응답​

{
"userId": "Ab1Cd2Ef3Gh4Ij5Kl6Mn7O"
}
필드타입null설명
userIdstring아니오이 토큰이 가리키는 DJ 의 고유 식별자예요.
userId 로 DJ 를 식별해요

userId 는 이 DJ 의 고유 식별자예요. 같은 DJ 면 항상 같은 값이라 토큰 정리 · 누적 데이터의 키로 쓰면 돼요. 이벤트 스트림에서 이 DJ 가 채팅할 때 오는 user.id 와 같은 값이에요.

값의 범위는 내 봇과 그 DJ 조합이에요. DJ 가 연동을 끊었다 다시 동의해도 유지돼요.

코드​

// me.ts — node --experimental-strip-types me.ts

interface Me {
userId: string;
}

const res = await fetch(`${process.env.SPOON_BASE_URL}/v1/me`, {
headers: { Authorization: `Bearer ${process.env.SPOON_ACCESS_TOKEN}` },
});
if (!res.ok) throw new Error(`식별자 조회 실패: ${res.status}`);

const { userId } = (await res.json()) as Me;

// 같은 userId 의 토큰이 이미 있으면 이번 토큰으로 덮어써요 — DJ 한 명 = 토큰 한 벌
console.log(`이 토큰의 DJ: ${userId}`);
node --experimental-strip-types me.ts

주의​

토큰을 받자마자 한 번 불러서 저장해요. 같은 DJ 가 다시 동의해도 이전 토큰이 폐기되지 않아서, userId 없이는 두 토큰이 같은 DJ 인지 알 수 없어요. 같은 userId 가 이미 있으면 이번 토큰으로 덮어쓰고, 이전 토큰은 폐기하는 걸 권장해요.

청취자가 아니라 DJ 자신의 값이에요. 청취자의 식별자는 이벤트 스트림 · 청취자 목록으로 받아요.

내 앱 안에서만 같은 값이에요. 같은 DJ 라도 다른 앱이 받는 값은 달라요. 앱끼리 값을 대조해 같은 사람을 찾을 수는 없어요.

에러​

HTTPdetailCode무슨 일인가요어떻게 하나요
401없음토큰이 없거나 무효해요.DJ 에게 재연동을 안내해요.
403없음me.read 권한이 없어요.권한을 추가해 재동의를 받아요.

이 표에 없는 상태도 올 수 있어요. 잘못된 메서드·Content-Type(400 · 405 · 415, OAPI_MNGR_0103) · 호출 한도(429, 본문 없음) · 서버 오류(500, OAPI_MNGR_1002)는 모든 엔드포인트에 공통이에요 — 에러 코드에 있어요.

관련 문서​