인벤토리 시스템에서 게임 서버에 알림 전송(webhook)
개요
인벤토리 시스템에서 특정 서버에 알림을 전송하는 기능에 대한 가이드로 사전에 협의된 URL을 호출합니다.
개발사에서는 API를 수신하여 비즈니스 로직에 활용하시면 됩니다.
필수 연동 사항은 아니므로 지원하는 알림 종류를 확인 후 필요 시 연동하시면 됩니다.
연동을 희망하시는 경우 상세 가이드를 참고하여 API 개발 후 URL과 함께 기술 PM 등에게 요청하시면 됩니다.
사용 예) 유저가 유효한 쿠폰 사용 → 인벤토리 시스템은 쿠폰 사용 신규 아이템 수신 → 등록된 URL로 알림 전송 → 인벤토리 조회 API 호출하여 지급 아이템 확인 후 유저에게 뱃지 등으로 표현 가능
기본 정보
알림 시스템의 기본 데이터 포맷은 모든 알림에 공통으로 사용되며, 상세 필드(payload)에 알림의 세부 정보가 포함되는 형태입니다.
즉, 하나의 API로 여러 알림을 통합해서 받으실 수 있습니다. (물론, 알림 종류별로 API를 다르게 구성해도 됩니다.)
인증방식은 기본 사설 도메인으로 연동하여 보안처리되지만, 필요 시 인증 헤더를 정의해서 제공해주셔도 됩니다.
Content-Type은 application/json 으로 요청됩니다.
공통 데이터 포맷
모든 알림은 아래의 형식에 맞춰 요청합니다.
notificationUuid
String
Y
알림마다 생성한 고유 아이디
21f4465a-12f6-45c0-b647-85ea942d8006
notificationType
String(50)
Y
알림 구분 코드
USER_COUPON_REDEEM_SUCCESS
payload
JsonObject
Y
알림 구분 코드에 해당하는 상세 정보
지원하는 알림 종류 별 payload example 참고
지원하는 알림 종류
USER_COUPON_REDEEM_SUCCESS
쿠폰 시스템으로부터 쿠폰 아이템이 추가된 경우 알림 타입
유저가 유효한 쿠폰 사용 → 인벤토리 시스템은 쿠폰 사용 신규 아이템 수신 → 등록된 URL로 알림 전송 → 인벤토리 조회 API 호출하여 지급 아이템 확인 후 유저에게 뱃지 등으로 표현 가능
{ "rewardId": "a3546e4a-a4ef-4745-a994-c07cb2753aec", "userType": "GAME_CHARACTER_ID", "userValue": "98HUE3C2JVE4XGK6Q3SN" }
Request
HTTP Request end point에 대한 가이드
/api/inventory/notification/ac6fmc4a 형태의 API URL을 정의
특정 고정된 랜덤 스트링은 혹시 모르는 보안 사고를 막기 위해서 임의로 정해서 사용 추천
해당 url 포맷은 예제이고 자유롭게 정의하셔도 좋습니다.
POST https://각 환경별 게임서버 도메인/api/inventory/notification/{특정한 고정된 랜덤 스트링}
알림 종류별 상세 정보(payload 필드) 파라미터
유저가 쿠폰 사용을 성공할 경우 알림
해당 알림의 notificationType은
USER_COUPON_REDEEM_SUCCESS
입니다.
HTTP Request Parameter
payload
JsonObject
Y
알림의 상세정보
rewardId
String(36)
Y
보상 아이템 고유 아이디
a3546e4a-a4ef-4745-a994-c07cb2753aec
userType
String(20)
Y
userValue에 해당하는 ID 종류
IMID
: HYBE IM의 id로 플랫폼 로그인 후 얻게되는 id, 정책상 기본적으로 인게임에서 유저가 보게되는 id value의 종류GAME_UID
: 게임쪽에서 자체 정의한 유저IDGAME_CHARACTER_ID
: 게임쪽에서 자체 정의한 케릭터ID
기술PM 등과 사전에 협의된 값
IMID
userValue
String(50)
Y
보상 아이템을 지급받은 userType에 해당하는 아이디
98HUE3C2JVE4XGK6Q3SN
요청 샘플 JSON (공통 데이터 포맷 포함)
Response
응답은 JSON형태로 전달됩니다.
Response property
Success Sample
수신 성공일 때는 resultCode에
SUCCESS
로 입력 후 200 응답해주세요.
Error Sample
수신 후 처리 실패인 경우 HTTP 상태 코드는 200이지만 resultCode에 정의된 에러코드와 함께 참고할 수 있는 메시지를
resultMessage
로 응답해주시면 됩니다.게임쪽에서는 HTTP 상태 코드 관리에 어려운 경우가 많으셔서 상태 코드는 200으로 처리해주시면 됩니다.
Error인 경우의 에러 코드 정의
아래의 에러 코드는 필수로 생각되어 미리 정의한 에러 코드입니다. 상황에 맞게 응답 해주시면 됩니다.
추가가 필요하면 코드 생성 후 공유주시면 추가 가능합니다.
INVALID_PARAMETER
잘못된 파라미터로 알림 시스템에서의 요청 파라미터가 잘못된 경우
INTERNAL_SERVER_ERROR
게임서버 내부 정의되지 않은 오류(ex. 예외 발생 오류)
NOT_ALLOW_AUTH
API 사용 권한이 없는 경우
인증 정보가 잘못된 등 API 사용할 수 없는 요청인 경우
Last updated