Service Account JWT로 Calendar API POST 시 500 SERVICE_UNAVAILABLE — GET은 정상
안녕하세요.
서비스 계정(Service Account) JWT 인증으로 Calendar API를 호출하는데, 일정 조회(GET)는 정상 작동하지만 일정 생성(POST)이 일관되게 500 SERVICE_UNAVAILABLE을 반환합니다.
[환경]
- 인증: JWT (RS256), grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
- Scope: calendar (콘솔에서 OAuth Scopes 활성화 확인. 설명에 "읽기 및 쓰기 권한: 생성, 조회, 수정, 삭제 등의 캘린더 및 일정 관리"로 명시되어 있음)
- 호스트: https://www.worksapis.com
[테스트 결과]
1) 토큰 발급 (scope=calendar)
→ 200 OK, granted scope: calendar
2) GET /v1.0/users/{userId}/calendar/events?fromDateTime=...&untilDateTime=...
→ 200 OK, 일정 정상 조회됨
3) POST /v1.0/users/{userId}/calendar/events (body: {"icalendarData": "..."})
→ 500 {"code":"SERVICE_UNAVAILABLE","description":"Service failure"}
4) POST /v1.0/users/{serviceAccount}/calendar/events (서비스 계정 자기 캘린더)
→ 500 동일
5) /v1.0/users/{userId}/calendars/{calendarId}/events 도 시도
→ 500 동일
[시도한 변형들]
- iCalendar 최소형 (DTSTART/DTEND/SUMMARY/UID/DTSTAMP만) ~ 풍부형 모두 동일하게 500
- 본문을 icalendarData 객체 vs 직접 JSON event 객체로 시도 모두 동일
- JWT의 sub를 service account / 일반 사용자 둘 다 시도 (사용자 sub는 token 발급 자체 거부)
[질문]
1. 서비스 계정 JWT 인증으로 일반 사용자 캘린더에 일정 생성이 가능한가요?
2. 가능하다면 추가로 필요한 설정/권한이 있는지 (콘솔에는 OAuth Scopes 외 별도 권한 메뉴를 찾지 못했습니다).
3. 400/403이 아닌 500이 일관되게 응답되는 것이 의도된 동작인지 — 디버깅이 매우 어렵습니다.
참고: 같은 토큰으로 GET은 정상 작동하므로 토큰 자체나 인증은 문제가 없는 것으로 보입니다.
확인 부탁드립니다. 감사합니다.
댓글1
업데이트 된 답글입니다.
오평메에
15:49
궁금한 점을 해결하지 못하셨나요?
지금 바로 NAVER WORKS 사용자들에게 물어보세요!