Documentation index for AI agents

GS2-Inbox 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

Consume Action

소비 액션

Gs2Inbox:OpenMessageByUserId

사용자 ID를 지정하여 메시지를 개봉 완료로 표시

지정된 사용자의 수신함에 있는 지정된 메시지를 읽음(개봉 완료) 상태로 표시합니다.
이는 획득 액션을 실행하지 않고 isRead를 true로 설정하는 단순한 상태 전환입니다.
읽음 처리와 동시에 관련된 보상을 실행하려면 대신 Read API를 사용하십시오.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
messageNamestring
UUID~ 36자메시지 이름
메시지의 고유한 이름을 유지합니다.
이름은 UUID(Universally Unique Identifier) 형식으로 자동 생성되며, 각 메시지를 식별하는 데 사용됩니다.
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Inbox:OpenMessageByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "messageName": "[string]메시지 이름",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Inbox:OpenMessageByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  messageName: "[string]메시지 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("inbox").consume.open_message_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    messageName="[string]메시지 이름",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Inbox:DeleteMessageByUserId

사용자 ID를 지정하여 메시지 삭제

지정된 사용자의 받은 편지함에서 메시지를 완전히 삭제합니다.
읽음 상태와 관계없이 메시지 레코드가 삭제됩니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
messageNamestring
UUID~ 36자메시지 이름
메시지의 고유한 이름을 유지합니다.
이름은 UUID(Universally Unique Identifier) 형식으로 자동 생성되며, 각 메시지를 식별하는 데 사용됩니다.
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Inbox:DeleteMessageByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "messageName": "[string]메시지 이름",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Inbox:DeleteMessageByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  messageName: "[string]메시지 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("inbox").consume.delete_message_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    messageName="[string]메시지 이름",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Acquire Action

입수 액션

Gs2Inbox:SendMessageByUserId

사용자 ID를 지정하여 메시지 발신

지정된 사용자의 수신함에 새로운 메시지를 생성하여 전달합니다.
메시지에는 메타데이터(임의의 JSON 콘텐츠)와 readAcquireActions(메시지 개봉 시 부여되는 보상)를 포함할 수 있습니다.
메시지의 유효기간은 절대 타임스탬프(expiresAt) 또는 전달 시점부터의 상대적인 기간(expiresTimeSpan)으로 설정할 수 있습니다. expiresAt가 지정된 경우 expiresTimeSpan보다 우선 적용됩니다.
메시지는 읽지 않은 상태(isRead=false)로 시작됩니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
metadatastring
~ 4096자메타데이터
메시지의 제목, 본문, 발신자 정보, 표시 파라미터 등을 포함하는 JSON 문자열 등, 메시지의 내용을 나타내는 임의의 데이터입니다. GS2는 이 값을 해석하지 않으며, 메시지 UI 렌더링을 위해 게임 클라이언트에 그대로 전달됩니다. 최대 4096자입니다.
readAcquireActionsList<AcquireAction>[]0 ~ 100 items개봉 시 입수 액션
사용자가 이 메시지를 개봉했을 때 실행되는 입수 액션 목록입니다. 아이템, 화폐, 리소스 등의 보상을 메시지에 첨부하기 위해 사용됩니다. 여러 액션을 조합하여 서로 다른 종류의 보상을 동시에 지급할 수 있습니다. 메시지당 최대 100개의 액션입니다.
expiresAtlong유효기간 일시
UNIX 시간·밀리초
expiresTimeSpanTimeSpan메시지를 수신한 시각(기준 시각)부터 메시지가 삭제될 때까지의 기간
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Inbox:SendMessageByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "metadata": "[string]메타데이터",
        "readAcquireActions": [
            {
                "action": "[string]입수 액션에서 실행할 액션의 종류",
                "request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
            }
        ],
        "expiresAt": "[long]유효기간 일시",
        "expiresTimeSpan": {
            "days": "[int]일수",
            "hours": "[int]시간",
            "minutes": "[int]분"
        },
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Inbox:SendMessageByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  metadata: "[string]메타데이터"
  readAcquireActions:
    - action: "[string]입수 액션에서 실행할 액션의 종류"
      request: "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
  expiresAt: "[long]유효기간 일시"
  expiresTimeSpan:
    days: "[int]일수"
    hours: "[int]시간"
    minutes: "[int]분"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("inbox").acquire.send_message_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    metadata="[string]메타데이터",
    readAcquireActions={
        {
            action="[string]입수 액션에서 실행할 액션의 종류",
            request="[string]액션 실행 시 사용되는 요청의 JSON 문자열"
        }
    },
    expiresAt="[long]유효기간 일시",
    expiresTimeSpan={
        days="[int]일수",
        hours="[int]시간",
        minutes="[int]분"
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})