토스쇼핑 Open API 승인 이후 API 키를 발급받고, WordPress 테스트 플러그인으로 OAuth 인증과 Health API를 확인한 다음, 실제 베스트 상품 1건을 API로 조회하는 데 성공한 과정을 정리했습니다.
왜 토스쇼핑 Open API를 연동하려고 했는가
Jukebox에서는 토스쇼핑 상품을 추천하고 이를 SNS 콘텐츠로 만드는 작업을 진행하고 있습니다. 지금까지는 사람이 직접 토스쇼핑에서 상품을 확인하고, 쉐어링크 정보를 확인한 뒤 상품 정보를 Claude에 전달해 콘텐츠를 작성하는 방식이었습니다. 이 과정 중 일부를 API로 자동화할 수 있는지 확인하기 위해 토스쇼핑 Open API 연동을 시작했습니다.
이전 글에서는 토스쇼핑 Open API 키 발급 과정을 다뤘고, 이번 글에서는 발급받은 키로 실제 인증과 상품 조회 테스트를 진행한 과정을 기록합니다.
API 승인과 키 발급
토스쇼핑 Open API 연동 신청 후 승인이 완료되었습니다. 이전 글에서 다룬 API 키 발급 과정을 거쳐 실제 API 키를 발급받았고, 이 키로 서버에서 API를 호출할 수 있는 환경을 구성했습니다. API Secret 등 민감한 인증 정보는 이번 글에서도 노출하지 않습니다.
서버 출발지 IP 확인
API 키를 발급받으려면 API를 호출할 서버의 출발지(공인) IP가 필요했습니다. 사용 중인 서버의 공인 IP를 확인해 등록했는데, 실제 IP를 글에 장기간 그대로 노출하는 것은 적절하지 않다고 판단해 아래처럼 일부를 마스킹해서 표시합니다.
서버 공인 IP (일부 마스킹): 141.164.51.xxx
WordPress 테스트 플러그인 제작
API 연결을 테스트하기 위해 별도의 스크립트보다는 WordPress에서 바로 실행해 볼 수 있는 테스트 플러그인을 직접 만들었습니다. 플러그인 이름은 jukebox-toss-sharelink-api-test로 정했고, 초기 버전(v1.0.0)에서는 다음 두 가지만 확인하는 것을 목표로 했습니다.
- OAuth 토큰 발급
- Health API 호출
OAuth 인증 테스트
발급받은 API 키로 OAuth 토큰 발급을 시도했고, WordPress 서버에서 정상적으로 토큰을 받아오는 것을 확인했습니다. API Secret 등 민감한 인증 정보는 이 글에 노출하지 않습니다.
Health API 테스트
토큰 발급이 확인된 뒤에는 Health API를 호출해 API 서버 상태를 점검했습니다. 결과는 다음과 같았습니다.
- HTTP Status: 200
- resultType: SUCCESS
- status: ok
이 단계까지 확인된 것은 “WordPress 서버에서 토스쇼핑 Open API를 호출할 수 있다”는 사실입니다. 아직 실제 상품 데이터를 가져온 것은 아니었습니다.
v1.1.0으로 상품 조회 기능 추가
다음 단계로 넘어가면서, 테스트할 때마다 새 플러그인을 만드는 대신 기존 jukebox-toss-sharelink-api-test 플러그인을 확장하는 방향을 선택했습니다. 테스트 목적의 플러그인이 여러 개로 흩어지면 나중에 관리하기 어려워질 것 같았기 때문입니다.
그래서 v1.1.0에서는 OAuth·Health API 테스트에 더해 베스트 상품 목록 API를 실제로 호출하는 기능을 추가했습니다. 이번 테스트에서는 전체 목록이 아니라 상품 1건만 조회되도록 범위를 좁혔습니다.
실제 상품 조회 결과
v1.1.0으로 베스트 상품 목록 API를 호출한 결과, 다음 상품 1건이 정상적으로 반환되었습니다.
| 항목 | 값 |
|---|---|
| 상품명 | 스파클 생수, 무라벨, 2L, 24개 |
| tacaItemId | 90382271 |
| 판매가 | 7,400원 |
| 정가 | 20,000원 |
| 할인율 | 63% |
| 품절 여부 | 판매 중 |
| 평점 | 4.8 |
| 리뷰 수 | 64,468건 |
| 썸네일 URL | 제공됨 |
| 상품 URL | 제공됨 |
| categoryIds | 제공됨 |
이번 테스트로 API 인증부터 실제 상품 데이터 조회까지 한 번에 이어지는 흐름이 정상 동작한다는 것을 확인했습니다.
이 테스트에서 확인된 것
단순히 “API 연결에 성공했다”는 수준이 아니라, 다음 세 단계가 순서대로 확인되었다는 점이 중요합니다.
- API 인증 — WordPress 서버에서 OAuth 토큰 발급 성공
- API 상태 확인 — Health API가 정상 상태(200 / SUCCESS / ok) 응답
- 실제 상품 데이터 조회 — 상품 ID, 상품명, 판매가, 정가, 할인율, 판매 상태, 평점, 리뷰 수, 썸네일, 상품 URL, 카테고리 ID까지 정상적으로 확보
즉, Jukebox 상품 선별에 필요한 기본 상품 데이터를 API에서 직접 가져올 수 있는 가능성을 확인한 것입니다.
Jukebox 자동화와 연결할 수 있는 부분
이번 개발의 최종 목적은 토스쇼핑 API 자체를 사용하는 것이 아니라, Jukebox에서 사람이 직접 하고 있는 상품 선별 과정의 일부를 자동화하는 것입니다.
현재 방식은 다음과 같습니다.
토스쇼핑 상품 확인 → 사람이 상품 선별 → 쉐어링크 정보 확인 → Claude에 상품 정보 전달 → SNS 콘텐츠 작성
이번 테스트 결과를 바탕으로 앞으로 다음과 같은 구조를 검토해볼 수 있을 것 같습니다.
토스쇼핑 Open API → 상품 데이터 수집 → Jukebox 상품 선별 기준 적용 → 후보 상품 선정 → 사람이 최종 확인 → SNS 콘텐츠 생성
다만 이 자동화 구조는 아직 구현된 것이 아니라, 이번 테스트로 “가능성을 확인한 단계”라는 점을 분명히 하고 넘어가야 할 것 같습니다.
아직 남은 과제
이번 테스트에서 확인한 범위는 명확하게 한정되어 있습니다. 다음 항목들은 아직 구현하거나 확인하지 않았습니다.
- 상품 상세 API
- 여러 상품을 한꺼번에 수집하는 자동화
- Jukebox 상품 선별 기준과 API 연동
- 자동 쉐어링크 발급
- SNS 콘텐츠 자동 생성
- 주문 이벤트 Callback 연동
상품 조회에 성공했다고 해서 전체 자동화가 완료된 것은 아닙니다. 이 점을 정확히 구분해두고 다음 단계로 넘어가려고 합니다.
이번 테스트의 결론
이번 테스트를 통해 OAuth 인증 → Health API 확인 → 베스트 상품 1건 조회까지, 토스쇼핑 Open API 연동의 기본 흐름이 정상적으로 동작한다는 것을 확인했습니다. 테스트 플러그인은 여러 개로 나누지 않고 jukebox-toss-sharelink-api-test 하나를 v1.0.0에서 v1.1.0으로 확장하는 방식으로 진행했고, 앞으로도 같은 방식으로 기능을 단계적으로 늘려갈 계획입니다.
다음 단계에서는 상품 상세 조회와 여러 상품을 한 번에 다루는 부분을 확인해볼 예정입니다. 다만 이 역시 실제로 구현하고 테스트한 뒤에 결과를 그대로 기록하려고 합니다.