8.2. Server API 예제 (/message)


/message/getList

Description

메시지 배송 서버로 전달된 메시지 목록을 조회합니다.

조회된 목록은 시간 역순으로 가장 최신 메시지가 첫페이지로 조회 됩니다. 최대 100개 씩 페이징 처리되어 조회할 수 있습니다.

응답값에 nextPageKey 값이 -1이 아니면 해당 키를 이용해서 다음 페이지 조회가 가능합니다.

메시지에는 복수개의 첨부아이템 목록이 존재합니다.

첨부된 아이템은 /message/finish 후에 게임 우편함에 지급합니다.

  • 게임 우편함에 지급한 후에 /message/finish 할 경우 처리가 되지 않을 경우 카카오 플렛폼에서 삭제되지 않으므로 중복 지급될 우려가 있습니다. 
    이에대한 예외처리가 되어 있다면 게임 내 우편함에 지급한 후에 /message/finish 호출해도 무방합니다.

 

Method

POST

Request Headers 

Name

Type

Mandatory

Description

appId

String

Y

게임 앱 ID 

appSecret

String

Y

게임마다 발급한 인증 key

playerId

String

Y

플랫폼에서 발급한 사용자 ID

Authorization

String

Y

서버인증정보: 이 API 호출권한이있는서버인지확인하기위한정보

  • KakaoAK {admin_key} 형태의문자열

  • {admin_key}는 [게임센터 > 게임관리 > 게임세부정보 > Admin Key] 에서확인가능

Request Body Parameters

Name

Type

 Mandatory

Description

Name

Type

 Mandatory

Description

messageBoxId

String

Y

메시지 박스 ID 
특정 메시지 박스에 대해서만 조회 시에 사용

count

Integer

Y

조회할 메시지 개수 (최대 100씩)

nextPageKey

Long

N

조회할 페이지의 시작 offset

null 입력시 첫페이지를 요청함

Long Max (9223372036854775807) 값을 입력해도 동일한 첫페이지를 요청함

states

List<String>

N

조회할 메시지 상태 값 목록

unread, read, error, deleted, expired

미입력시 unread, read 상태의 메시지목록이 반환됨

Response Status Code

Status Code

Status Code 설명

Status Code 상세 설명

Status Code

Status Code 설명

Status Code 상세 설명

200

정상 응답

정상

400

Bad Request

파싱되지 않는 요청 데이터. 필수 파라미터 부족 or 파라미터 타입 오류

401

Unauthenticated

인증되지 않은 요청

406

Not Acceptable

존재하지 않는 사용자

461

Restricted

제재된 사용자

463

Removed

탈퇴한 사용자 ( 사용자가 탈퇴 신청을하여 탈퇴 처리 중인 경우임. 실제 사용자 데이터는 존재함 )

500

Internal Server Error

서버 시스템 내부 오류

503

Service Unavailable

서비스가 가능하지 않은 상태 (예, 내부 서버간 timeout)

 

Response Content

Name

Type

Description

Name

Type

Description

nextPageKey

Long

다음 페이지 요청시 사용될

nextPageKey

  • -1 이면 더이상 데이터가 없음

messages

List<MessagePacket>

메시지 목록

maxCount

Integer

최대 보유 가능 메시지 개수

totalCount

Integer

현재 메시지 개수 (전체 페이지)

MessagePacket  

Name

Type

Description

Name

Type

Description

senderAppId

String

발신자 App ID

senderId

String

발신자 ID (playerId)

플랫폼 내부기능에서 발송되는 경우 ( admin, coupon, promotion, leaderboard )로 표시 됩니다.

appId

String

수신자 App ID

receiverId

String

수신자 ID (playerId)

message

Message

메시지 데이터

items

List<Item>

첨부 아이템 목록 

Message

Name

Type

Description

Name

Type

Description

deliverySeq

Long

메시지 데이터

messageId

String

메시지 ID

messageBoxId

String

메시지 Box ID

title

String

제목

body

String

본문

resourceMap

Map

메시지를 표현할때 필요한 데이터 값

state

String

메시지 상태 값

unread, read, error, deleted, expired

regTime

Long

등록 시각

modTime

Long

최종 수정 시각

readTime

Long

확인 처리 시각 (읽음 처리)

expiredTime

Long

만료시각

Item

Name

Type

Description

Name

Type

Description

messageId

String

메시지 ID

itemId

String

아이템 고유 ID

itemCode

String

아이템 코드

quantity

Long

아이템 수량

state

String

처리 상태값

registered, sent, confirmed, error, deleted, expired

validityTime

Long

아이템 유효시간

regTime

Long

등록 시각

modTime

Long

최종 수정 시각

sentTime

Long

requestItem 요청 시각

confirmedTime

Long

확인 처리 시각

expiredTime

Long

만료시각

 Example Request 

POST /service/v3/message/getList HTTP/1.1 Host: openapi-zinny3.game.kakao.com:10443 Content-Type: application/json;charset=UTF-8 appId: 103815 appSecret: 951b75bf17fe0885ab5106ba2a9f9bc9 playerId: 23423432453 Authorization: KakaoAK c0948035a320f789f585acae3dedcd70     {         "messageBoxId":"inBox",         "count": 1 }

Example Response 

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8     {             "maxCount": 10,             "totalCount": 3,             "nextPageKey": 6,             "messages": [                 {                     "appId": "103815",                     "senderAppId": "103815",                     "senderId": "23423432453",                     "receiverId": "23423432453",                     "message": {                         "deliverySeq": 7,                         "messageId": "fcc794be-002b-4ec4-abce-b40407a95a93",                         "messageBoxId": "inBox",                                               "title": "test message title",                         "body": "test message body",                         "resourceMap": {                             "imageLink": "test://12221212"                         },                         "state": "read",                         "regTime": 1427350711000,                         "modTime": 1427350711000,                         "readTime": 1427350711000,                         "expiredTime": 1435126739000                     },                     "items": [                         {                             "itemId": "e3b35f9f-b556-4473-9aff-6232d9532f61",                             "quantity": 100,                             "itemCode": "testItem111",                             "state": "confirmed",                             "regTime": 1427350711000,                             "modTime": 1427350711000,                             "sentTime": 1427350711000,                             "confirmedTime": 1427350711000,                             "expiredTime": 1435126739000,                             "validityTime": -1                         }                     ]                 }             ] }

 

 


/message/finish

Description

메시지에 포함된 아이템의 배송 트랜잭션을 종료 처리(아이템 지급완료)하고 메시지를 삭제합니다.

첨부된 아이템은 /message/finish 후에 게임 우편함에 지급합니다.

  • 게임 우편함에 지급한 후에 /message/finish 할 경우 처리가 되지 않을 경우 카카오 플렛폼에서 삭제되지 않으므로 중복 지급될 우려가 있습니다. 
    이에대한 예외처리가 되어 있다면 게임 내 우편함에 지급한 후에 /message/finish 호출해도 무방합니다.

 

Method

POST

Request Headers  

Name

Type

Mandatory

Description

appId

String

Y

게임 앱 ID 

appSecret

String

Y

게임마다 발급한 인증 key

playerId

String

Y

플랫폼에서 발급한 사용자 ID

Authorization

String

Y

서버인증정보: 이 API 호출권한이있는서버인지확인하기위한정보

  • KakaoAK {admin_key} 형태의문자열

  • {admin_key}는 [게임센터 > 게임관리 > 게임세부정보 > Admin Key] 에서확인가능

 

Request Body Parameters 

Name

Type

Mandatory

Description

Name

Type

Mandatory

Description

messageIds

List<String>

Y

완료 처리할 메시지 ID 목록

 

Response Status Code 

Status Code

Status Code 설명

Status Code 상세 설명

Status Code

Status Code 설명

Status Code 상세 설명

200

정상 응답

정상

400

Bad Request

파싱되지 않는 요청 데이터. 필수 파라미터 부족 or 파라미터 타입 오류

401

Unauthenticated

인증되지 않은 요청

406

Not Acceptable

존재하지 않는 메시지

500

Internal Server Error

서버 시스템 내부 오류

503

Service Unavailable

서비스가 가능하지 않은 상태 (예, 내부 서버간 timeout)

 

Response Content 

Name

Type

Description

Name

Type

Description

results

List<Result>

아이템 정보 목록

 

Result Content 

Name

Type

Description

Name

Type

Description

messageId

String

messageId

status

Integer

처리 결과 ( 200 성공 )

 

Example Request 

POST /service/v3/message/finish HTTP/1.1 Host: openapi-zinny3.game.kakao.com:10443 Content-Type: application/json;charset=UTF-8 appId: 103815 appSecret: 951b75bf17fe0885ab5106ba2a9f9bc9 playerId: 21792586 Authorization: KakaoAK c0948035a320f789f585acae3dedcd70     {    "messageIds": [       "3729694e-913b-4b29-94ef-36fd66f44ce8",       "4234554e-783b-b4g4-3f43-nfc34987fn38"    ] }

 

Example Response