'- IAP(In App Purchase) APIのリクエストパラメータおよびレスポンス結果項目追加および削除
- Push Wrapping
API追加
- Gamebase Access Tokenでログインする時に使用されたIdPのプロフィールおよびトークン情報を取得できるGet IdP Token and Profiles
API追加
- IdP IdでマッピングされたGamebase userIdを取得するGet UserId Information with IdP Id
API追加
- 特定期間に退会したユーザーのGamebase userIdを取得するWithdraw Histories
API追加
- 利用停止および利用停止解除を行うBan
, Ban Release
API追加
- 決済トランザクションを照会するGet Payment Transaction
API追加
- 未消費決済履歴を照会するList Consumables
APIで一度にN個のストアを対象に照会できるようにmarketIds
追加
- サーバーアドレスがhttps://api-gamebase.nhncloudservice.comに変更。既存アドレスも別途の告知前まで維持
- List Active Subscriptions
APIレスポンス結果にサブスクリプション商品キャンセル/再購入時に元取引購読のマーケット決済番号を表すlinkedPaymentId
追加
- 購読中の商品をキャンセルするCancel Subscriptions
, Revoke Subscriptions
API追加
- List Active Subscriptions
API request bodyにGoogle購読の無効化状態をリクエストできるincludeInactiveGoogleStatuses
追加
- List Active Subscriptions
APIレスポンス結果にRENEWED/RECOVERED発生時間を現すrenewTime
追加
- List Active Subscriptions
API requestに一度にN個のストアを対象に照会できるようにmarketIds
追加
- 利用停止状態のユーザーを照会するGet Ban Members
API追加
- 購読の現在状態を照会するGet Subscriptions Status
APIを追加
- Get Payment Transaction
API request bodyにONEStoreのpurchaseIdまたはpurchaseTokenの値を表すpaymentToken
を追加
Gamebase Server APIは、RESTful形式で、 次のようなAPIを提供します。サーバーAPIを使用するためには、次のような情報が必要です。
APIを呼び出すためのサーバーアドレスは、次の通りです。該当するアドレスは、Gamebase Console画面からでも確認できます。
https://api-gamebase.nhncloudservice.com
アプリIDとはNHN CloudプロジェクトのIDのことであり、アプリメニューの画面から確認することができます。
シークレットキー(secret key)は、APIに対するアクセスを制御する方法で、Gamebase Consoleから確認することができます。シークレットキーは、ServerAPIを呼び出すとき、HTTPのヘッダーに必ず設定する必要があります。
[参考] シークレットキーが外部に露出して正しくない呼び出しが発生した場合、作成ボタンをクリックして新しくシークレットキーを作成し、その新しいシークレットキーを使用してください。
APIを呼び出すサーバーで内部的にAPIリクエストを管理することができる方法としてTransactionId機能を提供します。呼び出すサーバーからHTTPのヘッダーにトランザクションIDを設定してAPIを呼び出すと、Gamebaseのサーバーは、レスポンスHTTP Header及びレスポンス結果のResponse Body Headerに該当するTransactionIdを設定して結果を送ります。
APIを呼び出す際には、HTTP Headerに次の項目を設定する必要があります。
Name | Required | Value |
---|---|---|
Content-Type | Required | application/json; charset=UTF-8 |
X-Secret-Key | Required | SecretKey 説明参考 |
X-TCGB-Transaction-Id | Optional | TransactionId 説明参考 |
すべてのAPIリクエストに対するレスポンスとしてHTTP 200 OKを送ります。APIリクエストが成功したかどうかは、Response BodyのHeader項目を参考して判断することができます。
[Request]
Content-Type:application/json
X-TCGB-Transaction-Id:88a1ae42-6b1d-48c8-894e-54e97aca07fq
X-Secret-Key:IgsaAP
GET https://api-gamebase.nhncloudservice.com
[Response]
HTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8
X-TCGB-Transaction-Id:88a1ae42-6b1d-48c8-894e-54e97aca07fq
{
"header": {
"transactionId": "88a1ae42-6b1d-48c8-894e-54e97aca07fq",
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success."
}
}
Key | Type | Description |
---|---|---|
transactionId | String | APIをリクエストする際に、HTTP Headerに設定した値 該当する値を送らない場合、Gamebaseの内部で作成した値を返す |
isSuccessful | boolean | 成功したかどうか |
resultCode | int | レスポンスコード 成功すると0、失敗するとエラーコードを返す |
resultMessage | String | レスポンスメッセージ |
APIレスポンス結果の特定変数タイプが変更されるとき、APIバージョンが変更されます。すなわち、新規APIが追加されたりレスポンス結果に新規変数が追加されてもAPIバージョンは変更されません。
[注意] APIレスポンス結果に新規変数が追加されてもJSON解析エラーが発生しないように、使用するJSONライブラリのオプションを追加してください。
ログインユーザーに発行されたAccess Tokenが有効かどうか検査します。Access Tokenが正常な場合、該当するユーザーの情報を返します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-gateway/v1.3/apps/{appId}/members/{userId}/tokens/{accessToken}?linkedIdP=false |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
userId | String | ログインしたユーザーのID |
accessToken | String | ログインしたユーザーに発行されたAccess Token |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
linkedIdP | boolean | Optional | true or false(デフォルトはfalse) Access Tokenの発行を受ける際に使用された、IdP関連の情報が含まれているかどうか |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "String",
"isSuccessful": true
},
"linkedIdP": {
"idPCode": "String",
"idPId": "String"
},
"member": {
"userId": "String",
"valid": "Y",
"appId": "String",
"regDate": "2019-08-27T17:41:05+09:00",
"lastLoginDate": "2019-08-27T17:41:05+09:00",
"authList": [
{
"userId": "String",
"authSystem": "String",
"idPCode": "String",
"authKey": "String",
"regDate": "2019-08-27T17:41:05+09:00"
},
{
"userId": "String",
"authSystem": "String",
"idPCode": "String",
"authKey": "String",
"regDate": "2019-08-27T17:41:05+09:00"
}
],
"temporaryWithdrawal": {
"gracePeriodDate": "2020-04-18T09:12:01+09:00"
}
}
}
Key | Type | Description |
---|---|---|
linkedIdP | Object | ログインしたユーザーが使用したIdP情報 |
linkedIdP.idPCode | String | ユーザー認証IdP |
linkedIdP.idPId | String | IdP ID |
member.userId | String | ユーザーID |
member.lastLoginDate | String | 最後にログインした時間 はじめてログインしたユーザーは、該当する値なし |
member.appId | String | appId |
member.valid | String | ユーザー状態 ログインに成功したユーザー値は"Y" |
member.regDate | String | ユーザーがアカウントを作成した時間 |
authList | Array[Object] | ユーザー認証IdP関連の情報 |
authList[].authSystem | String | Gamebase内部で使用される認証システム 今後、ユーザー認証システムを実装する予定 |
authList[].idPCode | String | ユーザー認証IdP |
authList[].authKey | String | authSystemから発行されたユーザーを区別する値 |
temporaryWithdrawal | Object | 退会猶予関連情報 validが"T"値でのみ提供 |
temporaryWithdrawal.gracePeriodDate | String | 退会猶予満了時間ISO 8601 |
[Error Code]
クライアントから"Login with IdP"でログインが成功した時に発行されたGamebase Access Tokenです。ログインに使用されたIdPのAccess TokenおよびProfiles情報を照会します。
[注意] IdPのAccess Token有効時間はIdPごとに全て異なり、一般的に短いです。 クライアントから"Login as the Latest Login IdP"を利用してログインに成功し、その後サーバーで該当APIを呼び出す場合、すでにIdPのAccess Tokenが期限切れになり、IdP情報の取得に失敗することがあります。
[参考] IdPのAccess Tokenだけで情報を取得できないIdPも存在します。 例) appleid / iosgamecenter : Access TokenでServer to Serverから取得できる情報がありません。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-gateway/v1.3/apps/{appId}/members/{userId}/idps/{idPCode}?accessToken={accessToken} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
userId | String | ログインしたユーザーID |
idPCode | String | ユーザー認証IdP |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
accessToken | String | Required | ログインしたユーザーに発行されたGamebase Access Token |
[Response Body]
{
"header": {
"resultCode": 0,
"resultMessage": "SUCCESS",
"transactionId": "String",
"isSuccessful": true
},
"idPProfile": {
"sub": "String",
"name": "String",
"given_name": "String",
"locale": "ko",
"picture": "String"
},
"idPToken": {
"idPCode": "google",
"accessToken": "ya29.a0AfH6SMCF-MjD_-Eqi62Jm-51IPxnS6HpahqpxqbuaWZPXc68YMmW3sRdif4k7Dmp2Ppn1xzH-JQwPLDv4tMrDFAknG4m_lrHQt4J4En7DAG0bZV4z8uJZE1zYOXHp8"
}
}
Key | Type | Description |
---|---|---|
idPProfile | Map |
ログインしたユーザーが使用したIdPのプロフィール - IdPごとに全てのレスポンス形式(format)が異なる |
idPToken | Object | ログインしたユーザーが使用したIdPのAccess Token情報 |
idPToken.idPCode | String | ユーザー認証IdP |
idPToken.accessToken | String | IdP Access Token |
[Error Code]
コンソールで設定したサーバーアドレス、インストールURL、現在のメンテナンス状態とメンテナンス時間およびメッセージなど、クライアントアプリ起動時に提供されるLaunching情報を確認できます。 現在のメンテナンス設定だけを確認したい場合は、[Check Maintenance] APIを使用してください。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-launching/v1.3/apps/{appId}/launching/simple |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
osCode | Enum | true | OSコード |
storeCode | Enum | true | ストアコード |
clientVersion | String | true | クライアントバージョン |
[Response Body]
{
"header": {
"resultCode": 0,
"resultMessage": "String",
"isSuccessful": true
},
"launchingData": {
"status": {
"code": 200,
"message": "String"
},
"app": {
"storeCode": "String",
"accessInfo": {
"serverAddress": "String",
"csInfo": "String"
},
"relatedUrls": {
"termsUrl": "String",
"csUrl": "String",
"punishRuleUrl": "String",
"personalInfoCollectionUrl": "String"
},
"install": {
"url": "String"
}
}
}
}
{
"header": {
"resultCode": 0,
"resultMessage": "String",
"isSuccessful": true
},
"launchingData": {
"status": {
"code": 303,
"message": "String"
},
"app": {
"storeCode": "String",
"accessInfo": {
"serverAddress": "String",
"csInfo": "String"
},
"relatedUrls": {
"termsUrl": "String",
"csUrl": "String",
"punishRuleUrl": "String",
"personalInfoCollectionUrl": "String"
},
"install": {
"url": "String"
}
},
"maintenance": {
"typeCode": "String",
"beginDate": "2018-05-23T10:44:00+09:00",
"endDate": "2022-01-01T10:44:00+09:00",
"url": null,
"reason": "String",
"message": "String"
}
}
}
Key | Type | Description |
---|---|---|
status | Object | 現在のクライアントのステータスを表す情報 |
status.code | int | クライアントステータスコード 正常:200 アップデート推奨:201、アップデート必須:300 サービス終了:302 メンテナンス中:303 |
status.message | String | クライアントステータスメッセージ |
app | Object | アプリ情報 |
app.storeCode | String | ストアコード |
app.accessInfo | Object | コンソールアプリ画面で設定した情報 |
app.accessInfo.serverAddress | String | サーバーアドレス クライアントで設定したサーバーアドレスの優先順位が高い。 クライアントサーバーアドレスが未設定の時は、アプリ画面で設定したサーバーアドレスが伝達される。 |
app.accessInfo.csInfo | String | サポート情報 |
app.relatedUrls | Object | アプリ内で使用するアプリ内URL |
app.relatedUrls.termsUrl | String | 利用約款 |
app.relatedUrls.csUrl | String | サポート |
app.relatedUrls.punishRuleUrl | String | 利用停止規定 |
app.relatedUrls.personalInfoCollectionUrl | String | 個人情報同意 |
app.install | Object | アプリインストール情報 |
app.install.url | String | インストールURL |
maintenance | Object | メンテナンス情報 |
maintenance.typeCode | String | メンテナンスタイプコード 全体メンテナンス:'SYSTEM'、アプリ別メンテナンス: 'APP' |
maintenance.beginDate | Date | メンテナンス開始時間ISO 8601 |
maintenance.endDate | Date | メンテナンス終了時間ISO 8601 |
maintenance.url | String | メンテナンスURL |
maintenance.reason | String | メンテナンス理由 |
maintenance.message | String | 基本メンテナンス理由メッセージ |
[Error Code]
[Error Code]
単一会員の詳細情報を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.3/apps/{appId}/members/{userId} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
userId | String | 照会対象のユーザーID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
includeMemberInfo | boolean | Optional | true or false(デフォルトはtrue) ユーザー端末、OSなどの詳細情報を含むかどうか |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"member": {
"userId": "String",
"valid": "Y",
"appId": "String",
"regDate": "2019-08-27T17:41:05+09:00",
"lastLoginDate": "2019-08-27T17:41:05+09:00",
"authList": [
{
"userId": "String",
"authSystem": "String",
"idPCode": "String",
"authKey": "String",
"regDate": "2019-08-27T17:41:05+09:00"
}
]
},
"temporaryWithdrawal": {
"gracePeriodDate": "2020-04-18T09:12:01+09:00"
},
"memberInfo": {
"deviceCountryCode": "String",
"usimCountryCode": "String",
"language": "String",
"osCode": "String",
"telecom": "String",
"storeCode": "String",
"network": "String",
"deviceModel": "String",
"osVersion": "String",
"sdkVersion": "String",
"clientVersion": "String"
}
}
Key | Type | Description |
---|---|---|
member | Object | 照会されたユーザーの基本情報 |
member.userId | String | ユーザーID |
member.valid | Enum | ユーザー状態 |
member.appId | String | appId |
member.regDate | String | ユーザーがアカウントを作成した時間 |
member.lastLoginDate | String | 最後にログインした時間 はじめてログインしたユーザーまたは退会したユーザーは該当する値なし |
member.authList | Array[Object] | ユーザー認証IdP関連の情報 |
member.authList[].userId | String | ユーザーID |
member.authList[].authSystem | String | Gamebase内部で使用される認証システム 今後ユーザー認証システム実装予定 |
member.authList[].idPCode | String | ユーザー認証IdP |
member.authList[].authKey | String | authSystemから発行された、ユーザーを区別する値 |
member.authList[].regDate | String | IdP情報がユーザーアカウントとマッピングされた時間 |
temporaryWithdrawal | Object | 退会猶予関連情報 validが"T"値でのみ提供 |
temporaryWithdrawal.gracePeriodDate | String | 退会猶予満了時間ISO 8601 |
memberInfo | Object | ユーザーに対する付加情報 退会したユーザーは該当する情報なし |
memberInfo.deviceCountryCode | String | ユーザー端末の国家設定 |
memberInfo.usmCountryCode | String | ユーザーUSIMの国家コード |
memberInfo.language | String | ユーザー端末言語、 ISO 639-1 |
memberInfo.osCode | String | OSコード |
memberInfo.telecom | String | 通信キャリア |
memberInfo.storeCode | String | ストアコード |
memberInfo.network | String | ネットワーク環境 3g、Wi-Fiなど |
memberInfo.deviceModel | String | ユーザー端末のモデル名 |
memberInfo.osVersion | String | ユーザー端末のOSバージョン |
memberInfo.sdkVersion | String | SDKバージョン |
memberInfo.clientVersion | String | クライアントバージョン |
[Error Code]
複数の会員情報を簡素化して照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-member/v1.3/apps/{appId}/members |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Body]
["userId", "userId", "userId"]
Type | Required | Value |
---|---|---|
Array[String] | Required | 照会対象のユーザーID |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"memberList": [
{
"userId": "String",
"valid": "Y",
"appId": "String",
"regDate": "2019-08-27T17:41:05+09:00"
}
]
}
Key | Type | Description |
---|---|---|
memberList | Array[Object] | 照会されたユーザーの基本情報 |
memberList[].userId | String | ユーザーID |
memberList[].valid | Enum | ユーザー状態 |
memberList[].appId | String | appId |
memberList[].regDate | String | アカウント作成時間 |
[Error Code]
ユーザーIDにマッピングされたIdP情報を照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-member/v1.3/apps/{appId}/auth/authKeys |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Body]
["userId", "userId", "userId"]
Type | Required | Value |
---|---|---|
Array[String] | Required | 照会対象のユーザーID |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"result": {
"String": [
{
"authKey": "String",
"idPCode": "gbid",
"authSystem": "String"
}
]
}
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 照会されたユーザーの基本情報 userIdがkey、IdP情報がvalueのobject |
authkey | String | authSystemから発行された、ユーザーを区別する値 |
IdPCode | String | ユーザー認証IdP |
authSystem | String | Gamebase内部で使用される認証システム 今後ユーザー認証実装予定 |
[Error Code]
ユーザー認証キーにマッピングされたユーザーIDを照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-member/v1.3/apps/{appId}/members/userIds/authKeys?authSystem={authSystem} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
authSystem | String | Required | Gamebase内部で使用される認証システム 今後ユーザー認証システム実装予定 現在はgbid |
[Request Body]
["authKey", "authKey", "authKey"]
Type | Required | Value |
---|---|---|
Array[String] | Required | authSystemから発行されたauthKey |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"result": {
"String": "String"
}
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 照会されたユーザーの基本情報 authKeyがkeyで、userIdがvalueのobject |
[Error Code]
IdP IDでマッピングされたユーザーID情報を照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.3/apps/{appId}/idps/{idPCode}/members |
[Request Header]
Check common requirements.
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN Cloud project ID |
idPCode | String | ユーザー認証IdP |
[Request Body]
["idPId", "idPId", "idPId"]
Type | Required | Value |
---|---|---|
Array[String] | Required | 照会対象ユーザーのIdP ID 照会対象リストサイズは最大300 |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"result": {
"idPId": "userId",
"idPId": "userId",
"idPId": "userId"
}
}
Key | Type | Description |
---|---|---|
result | Map |
照会されたユーザーのID情報 - IdP IDがkey、Gamebase userIdがvalue - 照会リクエストしたIdP IDを持つuserId情報がない場合はレスポンス結果に存在しません。 |
[Error Code]
ユーザーを利用停止状態に変更します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.3/apps/{appId}/members/ban |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"userIdList": [
"userId-1", "userId-2"
],
"banTypeCode": "TEMPORARY",
"end": "2022-05-10T06:03:50.000+09:00",
"templateCode": 0,
"banReason": "string",
"flags": "leaderboard",
"banCaller": "APP_SERVER",
"regUser": "GAME-SERVER"
}
Key | Type | Description |
---|---|---|
userIdList | Array[String] | 利用停止対象ユーザーID |
banTypeCode | Enum | 利用停止タイプ。 TEMPORARY or PERMANENT |
end | String | 利用停止終了時間(ISO 8601標準時間) - TEMPORARYタイプのときの必須値 |
templateCode | Integer | 利用停止時に表示されるメッセージに使われるテンプレートのテンプレートコード - この値はConsole利用停止 > テンプレート 詳細照会画面で確認可能 |
banReason | String | 利用停止理由 |
flags | String | 利用停止ユーザーのリーダーボードデータも一緒に削除したい場合は「leaderboard」に設定 |
banCaller | String | 利用停止APIを呼び出した主体。「APP_SERVER」固定値に設定 |
regUser | String | Console利用停止画面で表示する名前 |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"failedUserIdList": ["userId-1"]
}
Key | Type | Description |
---|---|---|
failedUserIdList | Array[String] | 利用停止登録に失敗したユーザーID |
[Error Code]
ユーザー利用停止履歴を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.3/apps/{appId}/members/bans |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
begin | String | Required | 利用停止履歴照会開始時間(ISO 8601標準時間、UTF-8エンコード必要) 例) yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | Required | 利用停止履歴照会終了時間(ISO 8601標準時間、UTF-8エンコード必要) beginとendの間の時間に利用停止した場合、照会結果に存在 |
page | String | Optional | 照会するページ。0から開始 |
size | String | Optional | 1ページ当たりのデータ数 |
order | String | Optional | 照会データソート方法。 ASC or DESC |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"pagingInfo": {
"first": true,
"last": true,
"numberOfElements": 0,
"page": 0,
"size": 0,
"totalElements": 0,
"totalPages": 0
},
"result": [
{
"userId": "String",
"banCaller": "CONSOLE",
"banReason": "String",
"banType": "TEMPORARY",
"beginDate": "2019-08-27T17:41:05+09:00",
"endDate": "2019-08-28T17:41:05+09:00",
"flags": "String",
"name": "String",
"templateCode": 0
}
]
}
Key | Type | Description |
---|---|---|
pagingInfo | Object | 照会されたページ情報 |
pagingInfo.first | boolean | 最初のページの場合はtrue |
pagingInfo.last | boolean | 最後のページの場合はtrue |
pagingInfo.numberOfElements | int | 総データ数 |
pagingInfo.page | int | ページ番号 |
pagingInfo.size | int | 1ページ当たりのデータ数 |
pagingInfo.totalElements | int | 総データ数 |
pagingInfo.totalPages | int | 総ページ数 |
result | Array[Object] | 照会された利用停止内訳 |
result.userId | String | ユーザーID |
result.banCaller | String | 利用停止指示者 |
result.banReason | String | 利用停止理由 |
result.banType | String | 利用停止タイプ。TEMPORARYまたはPERMANENT |
result.beginDate | String | 利用停止開始時間。ISO 8601標準時間 |
result.endDate | String | 利用停止終了時間。ISO 8601標準時間 PERMANENTタイプの場合、この値は存在しない |
result.flags | String | コンソールから利用停止を登録した時、リーダーボード削除を選択した場合は'leaderboard'を返す |
result.name | String | コンソールで登録したテンプレート名 |
result.templateCode | Long | コンソールで登録した利用停止テンプレートコード値 |
[Error Code]
ユーザーを利用停止解除状態、すなわち正常状態に変更します。
[Method, URI]
Method | URI |
---|---|
DELETE | /tcgb-gateway/v1.3/apps/{appId}/members/ban |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"userIdList": [
"userId-1", "userId-2"
],
"banReleaseReason": "string",
"banReleaseCaller": "APP_SERVER",
"releaseUser": "GAME-SERVER"
}
Key | Type | Description |
---|---|---|
userIdList | Array[String] | 利用停止解除対象ユーザーID |
banReleaseReason | String | 利用停止解除理由 |
banReleaseCaller | String | 利用停止解除APIを呼び出した主体。「APP_SERVER」固定値に設定 |
releaseUser | String | Console利用停止解除画面で表示する名前 |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"failedUserIdList": ["userId-1"]
}
Key | Type | Description |
---|---|---|
failedUserIdList | Array[String] | 利用停止解除に失敗したユーザーID |
[Error Code]
ユーザー利用停止解除履歴を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.3/apps/{appId}/members/bans/release |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
begin | String | Required | 利用停止解除履歴照会開始時間(ISO 8601標準時間、UTF-8エンコード必要) 例) yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | Required | 利用停止解除履歴照会終了時間(ISO 8601標準時間、UTF-8エンコード必要) beginとendの間の時間に利用停止が解除された場合、照会結果に存在 |
page | String | Optional | 照会するページ。0から開始 |
size | String | Optional | 1ページ当たりのデータ数 |
order | String | Optional | 照会データソート方法。 ASC or DESC |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"pagingInfo": {
"first": true,
"last": true,
"numberOfElements": 0,
"page": 0,
"size": 0,
"totalElements": 0,
"totalPages": 0
},
"result": [
{
"userId": "String",
"banCaller": "CONSOLE",
"banReason": "String",
"banType": "TEMPORARY",
"beginDate": "2019-08-27T17:41:05+09:00",
"endDate": "2019-08-29T17:41:05+09:00",
"flags": "String",
"name": "String",
"templateCode": 0,
"releaseCaller": "CONSOLE",
"releaseDate": "2019-08-30T18:41:05+09:00",
"releaseReason": "String"
}
]
}
Key | Type | Description |
---|---|---|
pagingInfo | Object | 照会されたページ情報 |
pagingInfo.first | boolean | 最初のページの場合はtrue |
pagingInfo.last | boolean | 最後のページの場合はtrue |
pagingInfo.numberOfElements | int | 総データ数 |
pagingInfo.page | int | ページ番号 |
pagingInfo.size | int | 1ページ当たりのデータ数 |
pagingInfo.totalElements | int | 総データ数 |
pagingInfo.totalPages | int | 総ページ数 |
result | Array[Object] | 照会された利用停止情報 |
result.userId | String | ユーザーID |
result.banCaller | String | 利用停止指示者 |
result.banReason | String | 利用停止理由 |
result.banType | String | 利用停止タイプ。TEMPORARYまたはPERMANENT |
result.beginDate | String | 利用停止開始時間。ISO 8601標準時間 |
result.endDate | String | 利用停止終了時間。ISO 8601標準時間 |
result.flags | String | コンソールから利用停止を登録した時、リーダーボード削除を選択した場合は「leaderboard」を返す |
result.name | String | コンソールで登録したテンプレート名 |
result.templateCode | Long | コンソールで登録した利用停止テンプレートコード値 |
result.releaseCaller | String | 利用停止解除者 |
result.releaseReason | String | 利用停止解除理由 |
result.releaseDate | String | 利用停止解除時間 |
[Error Code]
ゲストアカウントを移行するために、すでに発行されているIDおよびパスワードの有効性をチェックします。有効なTransferAccountの場合、発行されたuserId情報を返します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.3/apps/{appId}/members/transfer-account |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"account": {
"id": "198704206255",
"password": "Zw548q7zE"
}
}
Key | Type | Description |
---|---|---|
account.id | String | 有効性検証を行うID |
account.password | String | 有効性検証を行うパスワード |
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"member": {
"userId": "String",
"valid": "Y",
"appId": "String",
"regDate": "2019-08-27T17:41:05+09:00",
"lastLoginDate": "2019-08-27T17:41:05+09:00"
}
}
Key | Type | Description |
---|---|---|
member | Object | 照会されたユーザーの基本情報 |
member.userId | String | ユーザーID |
member.valid | Enum | ユーザー状態 |
member.appId | String | アプリID |
member.regDate | String | ユーザーがアカウントを作成した時間 |
member.lastLoginDate | String | 最後にログインした時間 初めてログインしたユーザーは該当値がない |
[Error Code]
ユーザーアカウントを退会処理します。
[参考] SDKの退会APIを使用せず、サーバー退会APIを使用してアカウント退会を実装した場合、クライアントでは退会成功後にSDKのlogout APIを呼び出してキャッシュされているトークンなどのデータを削除する必要があります。
[Method, URI]
Method | URI |
---|---|
DELETE | /tcgb-gateway/v1.3/apps/{appId}/members/{userId}?regUser={regUser} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
userId | String | 退会対象ユーザーID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
regUser | String | Required | 退会をリクエストしたシステムまたは運営者情報。空白なしで入力 - この情報はConsole > 「メンバー」ページの「退会履歴」画面で確認可能 - 退会履歴画面は退会した利用者の照会時にのみ表示される |
[Request Body]
なし
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
}
}
[Error Code]
ユーザーアカウントを退会処理します。
[参考] SDKの退会APIを使用せず、サーバー退会APIを使用してアカウント退会を実装した場合、クライアントでは退会成功後にSDKのlogout APIを呼び出してキャッシュされているトークンなどのデータ削除が必要です。
[Method, URI]
Method | URI |
---|---|
DELETE | /tcgb-gateway/v1.3/apps/{appId}/members/{userId}?regUser={regUser} |
[Request Header]
共通事項の確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
userId | String | 退会対象ユーザーID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
regUser | String | Required | 退会をリクエストしたシステムまたはユーザー情報 - この情報はConsole > 「メンバー」ページの「退会履歴」画面で確認可能 |
[Request Body]
なし
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
}
}
[Error Code]
特定期間に退会したユーザーを照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.3/apps/{appId}/logs/withdrawal |
[Request Header]
共通事項の確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
begin | String | Required | 履歴照会開始時間(ISO 8601標準時間、 UTF-8 Encoding必要) 過去1年以内のデータのみ提供 |
end | String | Required | 履歴照会終了時間(ISO 8601標準時間、 UTF-8 Encoding必要) 例) yyyy-MM-dd'T'HH:mm:ss.SSSXXX / 2021-09-11T00%3a00%3a00%2b09%3a00 |
page | String | Optional | 照会したいページ。 0から開始 |
size | String | Optional | 1ページ当たりのデータ数 |
order | String | Optional | 照会データのソート方法。 ASC or DESC |
[Response Body]
{
"header": {
"resultCode": 0,
"resultMessage": "SUCCESS",
"transactionId": "String",
"isSuccessful": true
},
"pagingInfo": {
"totalPages": 1,
"totalElements": 2,
"numberOfElements": 2,
"first": true,
"last": true,
"page": 0,
"size": 100
},
"result": [
{
"userId": "String",
"date": "2022-03-27T17:40:00+09:00",
"regUser": null
},
{
"userId": "String",
"date": "2022-03-27T17:41:05+09:00",
"regUser": "String"
}
]
}
Key | Type | Description |
---|---|---|
pagingInfo | Object | 照会されたページング情報 |
pagingInfo.first | boolean | 最初のページの場合はtrue |
pagingInfo.last | boolean | 最後のページの場合はtrue |
pagingInfo.numberOfElements | int | 総データ数 |
pagingInfo.page | int | ページ番号 |
pagingInfo.size | int | 1ページ当たりのデータ数 |
pagingInfo.totalElements | int | 総データ数 |
pagingInfo.totalPages | int | 総ページ数 |
result | Array[Object] | 照会された退会ユーザーの内容 |
result.userId | String | ユーザーID |
result.date | String | 退会日時 |
result.regUser | String | 退会APIを呼び出した主体 - この値がnullの場合はclient SDKで呼び出し |
[Error Code]
現在、メンテナンスが設定されているかどうかを確認します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-launching/v1.3/apps/{appId}/maintenances/under-maintenance |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Parameter]
なし
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "String",
"isSuccessful": true
},
"appId": "",
"underMaintenance": true,
"maintenance": {
"typeCode": "APP",
"beginDate": "2017-01-01T12:10:00+07:00",
"endDate": "2017-02-01T12:17:00+07:00",
"url": "http://url.info",
"reason" : "maintenance reason",
"message": "maintenance message",
"targetStores": [
"GG",
"AS",
"ONESTORE"
]
}
}
Key | Type | Description |
---|---|---|
underMaintenance | boolean | 現在、メンテナンスを設定しているかどうか |
maintenance | Object | メンテナンスが設定されている場合、メンテナンスの基本情報 |
maintenance.typeCode | Enum | APP:ゲームで設定したメンテナンス SYSTEM:Gamebaseシステムで設定したメンテナンス |
maintenance.beginDate | String | メンテナンス開始時間。ISO 8601 |
maintenance.endDate | String | メンテナンス終了時間。ISO 8601 |
maintenance.url | String | 詳細なメンテナンスURL |
maintenance.message | String | メンテナンスメッセージ |
maintenance.targetStores | Array[Enum] | 特定のクライアントに対してのみメンテナンスを設定した時、メンテナンスが設定されたクライアントのストアコード |
[Error Code]
Consoleを通して発行されたクーポンコードに対して、有効性の検証およびクーポン状態の変更を行います。有効なクーポンの場合、消費状態に変更し、レスポンス結果で支給するアイテム情報を返します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.3/apps/{appId}/members/{userId}/coupons/{couponCode}?storeCode={storeCode} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
userId | String | クーポンを使用するuserId |
couponCode | String | クーポンコード |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
storeCode | String | Optional | コンソールで特定ストアからインストールしたアプリのみクーポンを使用できるように設定した場合、ストアコードを伝達する必要があります。 - 全てのストアの場合はALLまたはパラメータ省略可能 - ストアコード |
[Response Body]
{
"header": {
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"result": {
"title": "Coupon Title",
"benefits": [
{
"itemId": "heart",
"amount": 10
},
{
"itemId": "diamond",
"amount": 20
}
]
}
}
Key | Type | Description |
---|---|---|
result | Object | クーポン情報 |
result.title | String | クーポンの名前 |
result.benefits | Array[Object] | 支給するアイテム情報 |
result.benefits.itemId | String | アイテムID |
result.benefits.amount | Integer | アイテムの数 |
[Error Code]
Google Play Store、App Store、ONEStoreなどのストア決済が正常に完了した場合、ユーザーにアイテムを支給し、サーバー内部的に履歴を記録した後、Gmaebaseに決済消費を伝えます。決済1件につき1回のみ決済を消費することができ、決済の状態が正常でない場合は消費されません。
[参考] 商品登録時、商品タイプが消費(CONSUMABLE)または消費性購読(CONSUMABLE_AUTO_RENEWABLE)アイテム決済に対してのみ消費(consume)処理されます。 決済1件につき1回消費可能で、決済消費を行っていない決済はIAPではアイテムを支給していないものとみなします。
消費(consume)していない決済は、SDKおよびサーバーの未消費決済履歴照会APIで照会できます。 APIでは未消費決済履歴が存在していても、ゲームサーバー内部にアイテム支給履歴がある場合は、ゲームサーバー内部支給履歴を優先的に判断してください。 (ネットワーク障害などでAPI timeoutが発生した場合、Gamebaseでは支給が完了しているが、ゲームサーバーではAPIレスポンス失敗でユーザーにはアイテム支給がされない場合がある)
[参考] ゲーム内部的にアイテム支給履歴を全て管理できない場合は、該当APIのrequest timeoutを10秒以上にしてAPI timout発生時だけでも履歴を記録して重複支給または未支給問題への対策が必要。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/consume |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"paymentSeq": "2019091931571201",
"accessToken": "90fD1bs1guXwY6aZ7rseEKYW_6gMCISjDASgten4MD6O7XZD7VRjZcs8OTm8lOQVFTegoY4WK78P2WQCMm7cx"
}
Name | Type | Required | Value |
---|---|---|---|
paymentSeq | String | Required | 決済番号 |
accessToken | String | Required | 決済認証トークン(ログイン認証トークンではない) |
[参考] クライアントでrequestPurchase APIを呼び出した時、返されたpurchaseTokenの値がaccessTokenに使用
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"price": 1500.0,
"currency": "KRW",
"productSeq": 1000292,
"marketId": "GG",
"gamebaseProductId": "tap_prod_001",
"payload": "additional info"
}
}
Key | Type | Description |
---|---|---|
result | Object | 決済基本情報 |
result.price | Long | 決済価格 |
result.currency | String | 決済通貨 |
result.productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
result.marketId | String | ストアコード |
result.gamebaseProductId | String | Gamebase商品ID コンソールで商品登録時にユーザーが入力した値 |
result.payload | String | SDKで設定した追加情報 |
[参考] クライアントで使用するSDKバージョンや決済APIによって、レスポンス結果にgamebaseProductId値が存在します。
[参考] ゲームサーバーではアイテム番号またはストアコードとGamebase商品IDで指定した商品(アイテム)を支給できますが、1個のストアアイテムIDにN個のGamebase商品を登録した場合、ストアコードとGamebase商品IDで支給する必要があります。
[Error Code]
決済が完了したが、まだ消費(Consume)していない未消費決済履歴を照会できます。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/consumable |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"marketIds": ["GG", "AS"],
"userId": "QXG774PMRZMWR3BR"
}
Name | Type | Required | Value |
---|---|---|---|
marketId | String | Optional | ストアコード - deprecated予定でmarketIds使用 |
marketIds | Array | Optional | ストアコード - 空の値(またはnull)の場合、全てのストアを対象に照会 - ただし、AMAZONストアが含まれる全てのストアを照会する場合、明示的に照会するすべてのストアを羅列する必要がある |
userId | String | Required | ユーザーID |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "success"
},
"result": [
{
"paymentSeq": "2020060210364966",
"productSeq": 1000312,
"currency": "KRW",
"price": 2500.0,
"marketId": "AS",
"accessToken": "ja5SBJBfr7rYUdjFr6dRe7gKnkX0r7EKPvuK6CIUBBekc1rE9CVbMKVCNuw6ZtwmcpDRXrToR9l26NF9zub6ol",
"paymentId" : "Store Reference Key",
"gamebaseProductId": "gamebase_prod_001",
"purchaseTime": "2020-06-02T13:38:56+09:00",
"payload": "additional info",
"isTestPurchase" : false
},
{
"paymentSeq": "2016122110023125",
"productSeq": 1000292,
"currency": "KRW",
"price": 1000.0,
"marketId": "AS",
"accessToken": "7_3zXyNJub0FNLed3m9XRAAXsSxLWq698t8QyTzk3NeeSoytKxtKGjldTc1wkSktgzjsfkVTKE50DoGihsAvGQ",
"paymentId" : "Store Reference Key",
"gamebaseProductId": "gamebase_prod_002",
"purchaseTime": "2020-06-02T13:37:42+09:00",
"isTestPurchase" : false
}
]
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 決済基本情報 |
result[].paymentSeq | String | Gamebaseで発行された決済Transaction ID |
result[].productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
result[].currency | String | 決済通貨 |
result[].price | Float | 決済価格 |
result[].accessToken | String | 決済認証トークン |
result[].paymentId | String | ストアで発行された決済ID |
result[].marketId | String | ストアコード |
result[].gamebaseProductId | String | Gamebase商品ID コンソールに商品登録した時にユーザーが入力した値 |
result[].purchaseTime | String | 決済発生日時 |
result[].payload | String | SDKで設定した追加情報 Amazonストアはその値がない場合があります |
result[].isTestPurchase | boolean | テスト決済かどうか |
[Error Code]
クライアントSDKを介して取得した未消費決済履歴が有効かどうかを確認できます。 (サーバーでアイテム支給(consume) APIを呼び出す前に、決済番号(paymentSeq)と決済認証トークン(accessToken)の有効性チェックを行いたい場合は該当APIを呼び出す)
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-inapp/v1.3/apps/{appId}/payment/transaction?accessToken={accessToken} |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
accessToken | String | Required | 決済認証トークン(purchaseToken) |
[Request Body]
なし
[Response Body]
{
"header": {
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"result": {
"paymentSeq": "2022041110385239",
"productSeq": 1003150,
"currency": "EUR",
"price": 2.29,
"marketId": "AS",
"accessToken": "-Fr8Y7_dvv5qhdd6qVHbs7gKnkX0r7EKPvuK6CI-UBBekc1rE9CVbMKVCNuw6ZtwkBGlzeIHg6DdjaRVeaW7GYlPF4vRa50L8umB6tdBvk8",
"paymentId" : "Store Reference Key",
"paymentToken" : "19062709124410111299",
"productType": "CONSUMABLE",
"userId": "AS@QW4M1GM7W97YJDCN",
"gamebaseProductId": "qa_ksw_prod_as_001",
"purchaseTime": "2022-04-11T16:47:01+09:00",
"payload" : "string",
"isTestPurchase": true,
"isConsumable": false
}
}
Key | Type | Description |
---|---|---|
result | Object | 決済情報 |
result.paymentSeq | String | Gamebaseで発行された決済番号 |
result.productSeq | Long | アイテム番号 コンソールで商品登録時、外部ストアアイテムに対して自動作成された値 |
result.currency | String | 決済通貨 |
result.price | Float | 決済価格 |
result.marketId | String | ストアコード |
result.accessToken | String | 決済認証トークン |
result.paymentId | String | ストアで発行された決済ID |
result.paymentToken | String | ストアで発行された決済トークンで、ONEStoreの決済案件にのみ存在する - ONEStore V5: purchaseId - ONEStore V6,7: purchaseToken |
result.productType | String | 商品(アイテム)タイプ - 消費:CONSUMABLE - 消費性購読:CONSUMABLE_AUTO_RENEWABLE - 購読:AUTO_RENEWABLE |
result.userId | String | ユーザーID |
result.gamebaseProductId | String | Gamebase商品ID コンソールで商品登録時、ユーザー入力値 |
result.purchaseTime | String | 決済発生日時 |
result.payload | String | SDKで設定した追加情報 Amazonストアは該当値がない場合あり |
result.isTestPurchase | boolean | テスト決済かどうか - true:テスト決済 |
result.isConsumable | boolean | 消費API呼び出し可否 - true:現在未消費状態で消費API呼び出し可能 |
[Error Code]
ユーザーが現在定期購入中の決済を照会できます。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/active-subscriptions |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"marketIds": [
"GG",
"AS"
],
"packageName": "com.nhncloud.gamebase",
"userId": "QXG774PMRZMWR3BR",
"includeInactiveGoogleStatuses" : [
"ON_HOLD"
]
}
Name | Type | Required | Value |
---|---|---|---|
marketId | String | Optional | ストアコード - deprecated予定でmarketIdsを使用 |
marketIds | Array[String] | Optional | ストアコード - 空の値(またはnull)の場合、全体ストアを対象に照会 |
packageName | String | Required | コンソールに登録したストアアプリID |
userId | String | Required | ユーザーID |
includeInactiveGoogleStatuses | Array[String] | Optional | レスポンス結果に含めるGoogle購読の無効化状態 - 現在'ON_HOLD'状態のみサポート |
[Response Body] |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": [
{
"marketId": "GG",
"userId": "QXG774PMRZMWR3BR",
"paymentSeq": "2020052810364755",
"accessToken": "NczL3n4TumMF8n9oRR5l8zXDyMXRVjxSRks0Lk1Saob2A9rdAupqjZSrQ0-hb2GOSFwTx5uDDchH8EB-EkWGGQ",
"productSeq": 1001221,
"productId": "money_100",
"productType": "AUTO_RENEWABLE",
"paymentId": "GPA.3302-8679-7228-41195",
"linkedPaymentId": "GPA.3358-3220-2629-70624",
"price": 1000.0,
"currency": "KRW",
"gamebaseProductId": "gamebase_renewal_001",
"payload": "additional info",
"purchaseTime": "2020-06-02T13:38:56+09:00",
"expiryTime": "2020-06-02T13:48:56+09:00",
"renewTime" : "2020-06-02T13:50:56+09:00",
"isTestPurchase" : false,
"referenceStatus" : "PURCHASED"
}
]
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 決済基本情報 |
result[].marketId | String | ストアコード |
result[].userId | String | ユーザーID |
result[].paymentSeq | String | 決済番号 |
result[].accessToken | String | 決済認証トークン |
result[].productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
result[].productId | String | ストアに登録された商品(アイテム)識別子 |
result[].productType | String | 商品(アイテム)タイプ 定期購入: AUTO_RENEWABLE |
result[].currency | String | 決済通貨 |
result[].price | Float | 決済価格 |
result[].originalPaymentId | String | 最初のストア決済ID |
result[].paymentId | String | 最近更新されたストア決済ID |
result[].linkedPaymentId | String | 購読キャンセル/再購入時、元取引の決済ID Google Playストアのみサポート |
result[].gamebaseProductId | String | Gamebase商品ID コンソールから商品を登録した時にユーザーが入力した値 |
result[].payload | String | SDKで設定した追加情報 |
result[].purchaseTime | String | 最近更新された時間 |
result[].expiryTime | String | 定期購入終了時間 |
result[].renewTime | String | RENEWED/RECOVERED発生時間 |
result[].isTestPurchase | boolean | テスト決済かどうか |
result[].referenceStatus | String | 決済システム(アプリ内決済、外部決済)が提供する決済参照状態 現在Google Playストアのみサポート |
[Error Code]
購読中の商品について、更新時点以降は更新されなくなり、現在の購読満了まで維持します。
[参考] 現在Google Playストアのみサポートします。 [Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/subscriptions/cancel |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"paymentSeq": "2022112110400545",
"accessToken": "NczL3n4TumMF8n9oRR5l8zXDyMXRVjxSRks0Lk1Saob2A9rdAupqjZSrQ0-hb2GOSFwTx5uDDchH8EB-EkWGGQ"
}
Name | Type | Required | Value |
---|---|---|---|
paymentSeq | String | Required | 決済番号 |
accessToken | String | Required | 決済認証トークン |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[Error Code]
現在購読中の商品についてすぐに購読をキャンセルし、返金を行います。
[参考] 現在Google Playストアのみサポートします。 [Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/subscriptions/revoke |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"paymentSeq": "2022112110400545",
"accessToken": "NczL3n4TumMF8n9oRR5l8zXDyMXRVjxSRks0Lk1Saob2A9rdAupqjZSrQ0-hb2GOSFwTx5uDDchH8EB-EkWGGQ"
}
Name | Type | Required | Value |
---|---|---|---|
paymentSeq | String | Required | 決済番号 |
accessToken | String | Required | 決済認証トークン |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[Error Code]
サブスクリプション商品の現在状態を照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.3/apps/{appId}/subscriptions/status |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"payments": [
{
"paymentSeq": "2023082410408370",
"accessToken": "Yk3sMxc-JSaGLLY0X-DnajXDyMXRVjxSRks0Lk1SaoaO7RD7VRjZcs8OTm8lOQVFoP71pgjAb_INjl0Y5KN8_A"
},
{
"paymentSeq": "2023082410408383",
"accessToken": "qEP1ZeV_ORmJdlNr9xDm9DXDyMXRVjxSRks0Lk1SaoaPiqPX4dG6UstXeWUt1NujyQAwH8BWQJueaPRfmnRyeg"
}
]
}
Name | Type | Required | Value |
---|---|---|---|
payments | Array[Object] | 購読決済情報。最大10個まで入力 | |
payments[].paymentSeq | String | Required | 決済番号 |
payments[].accessToken | String | Required | 決済認証トークン |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": [
{
"userId": "QXG774PMRZMWR3BR",
"paymentSeq": "2023082410408389",
"accessToken": "uddRuwkHm9nFIHjvVuDS2jXDyMXRVjxSRks0Lk1SaoaPiqPX4dG6UstXeWUt1NujyQAwH8BWQJueaPRfmnRyeg",
"paymentId": "GPA.3333-7714-3477-48799..5",
"originalPaymentId": "GPA.3333-7714-3477-48799",
"purchaseTime": "2022-05-16T09:59:27+09:00",
"expiryTime": "2023-08-24T12:48:45+09:00",
"renewTime": "2023-08-24T12:48:45+09:00",
"referenceStatus": "REPURCHASED"
},
{
"userId": "QXG774PMRZMWR3BR",
"paymentSeq": "2023082410408381",
"accessToken": "SFkxJL2sk8NlbsPe8ivVGDXDyMXRVjxSRks0Lk1SaoaO7RD7VRjZcs8OTm8lOQVFoP71pgjAb_INjl0Y5KN8_A",
"paymentId": "GPA.3395-4426-6912-10820..5",
"originalPaymentId": "GPA.3395-4426-6912-10820",
"purchaseTime": "2022-05-16T09:59:27+09:00",
"expiryTime": "2023-08-24T12:48:45+09:00",
"renewTime": "2023-08-24T12:48:45+09:00",
"referenceStatus": "EXPIRED"
}
]
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 決済基本情報 |
result[].userId | String | ユーザーID |
result[].paymentSeq | String | 決済番号 |
result[].accessToken | String | 決済認証トークン |
result[].paymentId | String | 最近更新されたストア決済ID |
result[].originalPaymentId | String | 最初のストア決済ID |
result[].purchaseTime | String | 最近更新された時間 |
result[].expiryTime | String | 購読の有効期限 |
result[].renewTime | String | RENEWED/RECOVERED発生時間 |
result[].referenceStatus | String | 決済システム(アプリ内決済、外部決済)が提供する決済参照状態 現在Google Playストアのみサポート |
[Error Code]
Gamebaseは、NHN Cloud LeaderboardサービスのサーバーAPIに対してWrapping機能を提供します。Wrapping機能を使用すれば、ユーザーサーバーにおいて一貫したインターフェースでNHN Cloudサービスを使用することができます。
[参考] Gamebaseを有効化すると、Leaderboard Appkey設定を行わずにGamebase Wrapping APIを呼び出してLeaderboard機能を使用できます。
API | Method | Wrapping URI | Leaderboard URI |
---|---|---|---|
Factorに登録されたユーザー数を照会 - Get user count in factor |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/user-count | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/user-count |
Factor全体数検索 - Get total factor count |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factor-count | /leaderboard/v2.0/appkeys/{appKey}/factor-count |
Factor情報照会 - Get factor info - Get multiple factor info |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factors | /leaderboard/v2.0/appkeys/{appKey}/factors |
単一ユーザーのスコア/ランキングを照会 - Get single user info |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users?userId={userId} | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users?userId={userId} |
複数のユーザーのスコア/ランキングを照会 - Get multiple user info |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/get-users | /leaderboard/v2.0/appkeys/{appKey}/get-users |
一定範囲の全体スコア/ランキングを照会 - Get multiple user info by range |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users?start={start}&size={size} | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users?start={start}&size={size} |
特定順位のユーザーを検索 - Get selected rank user info |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users |
特定ユーザーの順位および上位、下位ユーザーの順位検索 - Get multiple user info by pivot user |
GET | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users?userId={userId}&prevSize={prevSize}&nextSize={nextSize} | /leaderboard/v2.0/appkeys/{appkey}/factors/{factor}/users?userId={userId}&prevSize={prevSize}&nextSize={nextSize} |
単一ユーザーのスコアを登録 - Set single user score |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users/{userId}/score | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users/{userId}/score |
単一ユーザーのスコア/ExtraDataを登録 - Set single user score with extra data |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users/{userId}/score-with-extra | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users/{userId}/score-with-extra |
複数のユーザーのスコアを登録 - Set multiple user score |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/scores | /leaderboard/v2.0/appkeys/{appKey}/scores |
複数のユーザーのスコア/ExtraDataを登録 - Set multiple user score with extra data |
POST | /tcgb-leaderboard/v1.3/apps/{appId}/scores-with-extra | /leaderboard/v2.0/appkeys/{appKey}/score-with-extra |
ユーザーLeaderboard情報を削除 - Delete single user info - Delete multiple user info |
DELETE | /tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/users | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users |
該当するAPIに対する詳細説明は、次のリンクをご参考ください。 Gamebase Wrapping APIとマッピングされたLeaderboard APIのスペックは、以下のガイドを参考にしてください。 Leaderboard Appkeyを設定しないで、Gamebase AppIdおよびSecretKeyを利用してGamebase Wrapping Leaderboard APIを呼び出せます。
GET https://api-gamebase.nhncloudservice.com/tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/user-count
Content-Type: application/json
X-TCGB-Transaction-Id: 88a1ae42-6b1d-48c8-894e-54e97aca07fq
X-Secret-Key: IgsaAP
Gamebaseは、NHN Cloud PushサービスのサーバーAPIでWrapping機能を提供します。Wrapping機能を使用すると、ユーザーサーバーで一貫したインターフェイスでNHN Cloudサービスを使用できます。
[参考] Gamebaseを有効化すると、Push Appkeyの設定を行わずにGamebase Wrapping APIを呼び出してPush機能を使用できます。
API | Method | Wrapping URI | Push URI | |
---|---|---|---|---|
メッセージ | 送信 | POST | /tcgb-push/v1.3/apps/{appId}/messages | /push/v2.4/appkeys/{appkey}/messages |
照会 | GET | /tcgb-push/v1.3/apps/{appId}/messages | /push/v2.4/appkeys/{appkey}/messages | |
送信ログ照会 | GET | /tcgb-push/v1.3/apps/{appId}/logs/message | /push/v2.4/appkeys/{appkey}/logs/message | |
予約メッセージ | 送信スケジュール作成 | POST | /tcgb-push/v1.3/apps/{appId}/schedules | /push/v2.4/appkeys/{appkey}/schedules |
作成 | POST | /tcgb-push/v1.3/apps/{appId}/reservations | /push/v2.4/appkeys/{appkey}/reservations | |
リスト照会 | GET | /tcgb-push/v1.3/apps/{appId}/reservations | /push/v2.4/appkeys/{appkey}/reservations | |
1件照会 | GET | /tcgb-push/v1.3/apps/{appId}/reservations/{reservation-id} | /push/v2.4/appkeys/{appkey}/reservations/{reservation-id} | |
送信完了照会 | GET | /tcgb-push/v1.3/apps/{appId}/reservations/{reservation-id}/messages | /push/v2.4/appkeys/{appkey}/reservations/{reservation-id}/messages | |
修正 | PUT | /tcgb-push/v1.3/apps/{appId}/reservations/{reservationId} | /push/v2.4/appkeys/{appkey}/reservations/{reservationId} | |
削除 | DELETE | /tcgb-push/v1.3/apps/{appId}/reservations | /push/v2.4/appkeys/{appkey}/reservations |
当該APIの詳細については次のリンクを参照してください。 Gamebase Wrapping APIとマッピングされたPush APIのスペックは、以下のガイドを参照してください。 Push Appkeyの設定を行わずに、Gamebase AppIdおよびSecretKeyを利用してGamebase Wrapping Push APIを呼び出せます。
[参考1] Pushガイドに存在するuid値はgamebase userId値を使用できます。クライアントSDKでプッシュトークン登録時、ユーザー識別子はgamebase userIdに登録されています。 1人のユーザーが複数の端末でプッシュ受信を許可した場合、複数の端末でプッシュを受信します。
[参考2] APIを介してプッシュメッセージを送信した場合、送信履歴はGamebase Consoleのプッシュ > 送信履歴で確認できません。 プッシュ > 設定 > 送信履歴保存メニューでLog & Crash設定から確認できます。
GET https://api-gamebase.nhncloudservice.com/tcgb-leaderboard/v1.3/apps/{appId}/factors/{factor}/user-count
Content-Type: application/json
X-TCGB-Transaction-Id: 88a1ae42-6b1d-48c8-894e-54e97aca07fq
X-Secret-Key: IgsaAP
{
"target" : {
"type" : "UID",
"to": ["gamebase userId-1", "gamebase userId-2"]
},
"content" : {
"default" : {
"title": "title",
"body": "body"
}
},
"messageType" : "AD",
"contact": "1588-1588",
"removeGuide": "Menu > Setting",
"timeToLiveMinute": 1,
"provisionedResourceId": "id",
"adWordPosition": "TITLE"
}
ユーザー端末のOSに対してGamebase内部で定義したコードです。
Code | 説明 |
---|---|
AOS | Android |
IOS | iOS |
WEB | Web |
WINDOWS | Windows |
アプリをインストールしたストアについてGamebase内部で定義したコードです。
Code | 説明 |
---|---|
GG | Google Play Store |
AS | App Store |
ONESTORE | ONE store |
GALAXY | Galaxy Store |
MYCARD | Global MyCard |
ユーザー認証に使用されたIdentity ProviderについてGamebase内部で定義したコードです。
ユーザーの現在状態についてGamebase内部で定義したコードです。
Code | 説明 |
---|---|
Y | 正常ユーザー |
D | 退会したユーザー |
B | 利用停止したユーザー |
T | 退会猶予状態のユーザー |
P | 利用停止猶予状態のユーザー |
M | 消失したアカウント |
決済システム(ストアのアプリ内決済、外部決済)が提供する決済参照状態
決済システム | Code | 説明 |
---|---|---|
Googleアプリ内 | PURCHASED | 購入完了 |
REPURCHASED | 再購入完了 | |
RESTARTED | 購読再開 | |
PENDING | 決済遅延中 | |
RENEWED | 購読更新 | |
RECOVERED | 購読復旧 | |
PAUSE_SCHEDULED | 購読中止予定 | |
PAUSED | 中止 | |
REVOKED | 払い戻し | |
CANCELED_PRODUCT | 単品決済キャンセル | |
CANCELED_SUBSCRIPTION | 購読キャンセル(更新中止) - 現在の回の購読は提供する必要がある |
|
ON_HOLD | 保留中 | |
IN_GRACE | 猶予中 | |
EXPIRED | 期限切れ | |
NOT_APPOINTED | 適切な特定状態なし |
API呼び出し失敗の原因に対するお問い合わせがある場合、API呼び出しURL(HTTP bodyがある場合は、bodyと一緒に)とそれに対するレスポンス結果をカスタマーセンターにアップロードしてください。なるべく早くお答えいたします。
GET https://api-gamebase.nhncloudservice.com/tcgb-launching/v1.3/apps/C3JmSctU/maintenances/under-maintenance
{
"header": {
"transactionId": "18a1ae42-6b1d-54c8-894e-54e97bca07fq",
"resultCode": -4010002,
"resultMessage": "Gamebase product appKey is invalid, appId:C3JmSctU",
"traceError": {
"trackingTime": 1489726350287,
"throwPoint": "gateway",
"uri": "/tcgb-launching/v1.3/apps/C3JmSctU/maintenances/under-maintenance"
},
"isSuccessful": false
}
}