Gamebase Server APIは、RESTful形式で、 次のようなAPIを提供します。サーバーAPIを使用するためには、次のような情報が必要です。
APIを呼び出すためのサーバーアドレスは、次の通りです。該当するアドレスは、Gamebase Console画面からでも確認できます。
https://api-gamebase.cloud.toast.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 | mandatory | application/json; charset=UTF-8 |
X-Secret-Key | mandatory | 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.cloud.toast.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 | レスポンスメッセージ |
ログインユーザーに発行されたAccess Tokenが有効かどうか検査します。Access Tokenが正常な場合、該当するユーザーの情報を返します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-gateway/v1.2/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情報 guest、payco、facebookなど |
linkedIdP.idPId | String | IdP ID |
member.userId | String | ユーザーID |
member.lastLoginDate | String | 最後にログインした時間 はじめてログインしたユーザーは、該当する値なし |
member.appId | String | appId |
member.valid | String | ログインに成功したユーザーの値は"Y" (他の値に対する説明は、メンバーAPIを参考) |
member.regDate | String | ユーザーがアカウントを作成した時間 |
authList | Array[Object] | ユーザー認証IdP関連の情報 |
authList[].authSystem | String | Gamebase内部で使用される認証システム 今後、ユーザー認証システムを実装する予定 |
authList[].idPCode | String | ユーザー認証IdP情報 guest、payco、facebookなど |
authList[].authKey | String | authSystemから発行されたユーザーを区別する値 |
temporaryWithdrawal | Object | 退会猶予関連情報 validが"T"値でのみ提供 |
temporaryWithdrawal.gracePeriodDate | String | 退会猶予満了時間ISO 8601 |
[Error Code]
コンソールで設定したサーバーアドレス、インストールURL、現在のメンテナンス状態とメンテナンス時間およびメッセージなど、クライアントアプリ起動時に提供されるLaunching情報を確認できます。 現在のメンテナンス設定だけを確認したい場合は、[Check Maintenance] APIを使用してください。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-launching/v1.2/apps/{appId}/launching/simple |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
osCode | OsCode | true | OSコード AOS、IOS、WEB、WINDOWS |
storeCode | Enum | true | アプリストアコード - GG: Google - ONESTORE: ONE store - AS: AppStore |
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 | アプリストアコード 'GG'、'AS'など |
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]
単一会員の詳細情報を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.2/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 | Y:正常なユーザー D:退会したユーザー B:利用停止中のユーザー M:流出したアカウント |
member.appId | String | appId |
member.regDate | String | ユーザーがアカウントを作成した時間 |
member.lastLoginDate | long | 最後にログインした時間 はじめてログインしたユーザーは、該当する値なし |
member.authList | Array[Object] | ユーザー認証IdP関連の情報 |
member.authList[].userId | String | ユーザーID |
member.authList[].authSystem | String | Gamebase内部で使用される認証システム 今後ユーザー認証システム実装予定 |
member.authList[].idPCode | String | ユーザー認証IdP情報 guest、payco、facebookなど |
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 | ユーザー言語 |
memberInfo.osCode | String | ユーザー端末のOS種類 |
memberInfo.telecom | String | 通信キャリア |
memberInfo.storeCode | String | storeコード |
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.2/apps/{appId}/members |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Body]
Name | Type | Required | Value |
---|---|---|---|
userIdList | Array[String] | mandatory | 照会対象のユーザーID ["userId", "userId", "userId",...] |
[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 | Y:正常なユーザー D:退会したユーザー B:利用停止中のユーザー M:流出したアカウント T: 退会猶予状態のユーザー |
memberList[].appId | String | appId |
memberList[].regDate | String | ユーザーがアカウントを作成した時間 |
[Error Code]
ユーザーIDにマッピングされたIdP情報を照会します。
[Method, URI]
Method | Type | URI |
---|---|---|
POST | String | /tcgb-member/v1.2/apps/{appId}/auth/authKeys |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトのID |
[Request Body]
Name | Type | Required | Value |
---|---|---|---|
userIdList | Array[String] | mandatory | 照会対象のユーザーID ["userId", "userId", "userId",...] |
[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情報 guest、payco、facebookなど |
authSystem | String | Gamebase内部で使用される認証システム 今後ユーザー認証実装予定 |
[Error Code]
ユーザー認証キーにマッピングされたユーザーIDを照会します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-member/v1.2/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 | mandatory | Gamebase内部で使用される認証システム 今後ユーザー認証システム実装予定 現在はgbid |
[Request Body]
Name | Type | Required | Value |
---|---|---|---|
authKeyList | Array[String] | mandatory | authSystemから発行されたauthKey ["authKey", "authKey", "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]
ユーザー利用停止履歴を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.2/apps/{appId}/members/bans |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
Name | Type | Required | Value |
---|---|---|---|
begin | String | mandatory | 利用停止履歴照会開始時間(ISO 8601標準時間、UTF-8エンコード必要) 例) yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | mandatory | 利用停止履歴照会終了時間(ISO 8601標準時間、UTF-8エンコード必要) beginとendの間の時間に利用停止した場合、照会結果に存在 |
page | String | optional | 照会するページ。0から開始 |
size | String | optional | 1ページ当たりのデータ数 |
[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": [
{
"appId": "String",
"banCaller": "CONSOLE",
"banReason": "String",
"banType": "TEMPORARY",
"beginDate": 0,
"endDate": 0,
"flags": "String",
"message": "String",
"name": "String",
"regUser": "String",
"releaseCaller": "CONSOLE",
"releaseDate": 0,
"releaseReason": "String",
"releaseUser": "String",
"seq": 0,
"templateCode": 0,
"userId": "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.appId | String | 照会された利用停止のNHN Cloudプロジェクト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.message | String | 利用停止メッセージ |
result.name | String | コンソールで登録したテンプレート名 |
result.regUser | String | 利用停止登録者 |
result.releaseCaller | String | 利用停止解除者 |
result.releaseDate | String | 利用停止解除時間。ISO 8601標準時間 |
result.releaseReason | String | 利用停止解除理由 |
result.releaseUser | String | 利用停止解除登録者 |
result.seq | Long | 利用停止内訳順番 |
result.templateCode | Long | コンソールで登録した利用停止テンプレートコード値 |
result.userId | String | ユーザーID |
[Error Code]
ユーザー利用停止解除履歴を照会します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-member/v1.2/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 | mandatory | 利用停止解除履歴照会開始時間(ISO 8601標準時間、UTF-8エンコード必要) 例) yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | mandatory | 利用停止解除履歴照会終了時間(ISO 8601標準時間、UTF-8エンコード必要) beginとendの間の時間に利用停止が解除された場合、照会結果に存在 |
page | String | optional | 照会するページ。0から開始 |
size | String | optional | 1ページ当たりのデータ数 |
[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": [
{
"appId": "String",
"banCaller": "CONSOLE",
"banReason": "String",
"banType": "TEMPORARY",
"beginDate": 0,
"endDate": 0,
"flags": "String",
"message": "String",
"name": "String",
"regUser": "String",
"releaseCaller": "CONSOLE",
"releaseDate": 0,
"releaseReason": "String",
"releaseUser": "String",
"seq": 0,
"templateCode": 0,
"userId": "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.appId | String | 照会された利用停止のNHN Cloudプロジェクト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.message | String | 利用停止メッセージ |
result.name | String | コンソールで登録したテンプレート名 |
result.regUser | String | 利用停止登録者 |
result.releaseCaller | String | 利用停止解除者 |
result.releaseDate | String | 利用停止解除時間。ISO 8601標準時間 |
result.releaseReason | String | 利用停止解除理由 |
result.releaseUser | String | 利用停止解除登録者 |
result.seq | Long | 利用停止内訳順番 |
result.templateCode | Long | コンソールで登録した利用停止テンプレートコード値 |
result.userId | String | ユーザーID |
[Error Code]
ゲストアカウントを移行するために、すでに発行されているIDおよびパスワードの有効性をチェックします。有効なTransferAccountの場合、発行されたuserId情報を返します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.2/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 | Y:正常ユーザー D:退会したユーザー B:利用停止したユーザー M:消滅したアカウント |
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 | mandatory | 退会をリクエストしたシステムまたはユーザー情報 - この情報はConsole > 「メンバー」ページの「退会履歴」画面で確認可能 - 退会履歴画面は退会した利用者の照会時にのみ表示される |
[Request Body]
なし
[Response Body]
{
"header": {
"transactionId": "String",
"resultCode": 0,
"resultMessage": "SUCCESS",
"isSuccessful": true
}
}
[Error Code]
現在、メンテナンスが設定されているかどうかを確認します。
[Method, URI]
Method | URI |
---|---|
GET | /tcgb-launching/v1.2/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,
"maintenances": [
{
"typeCode": "APP",
"beginDate": "2017-01-01T12:10:00+07:00",
"endDate": "2017-02-01T12:17:00+07:00",
"url": "http://url.info",
"message": "maintenance message",
"targetStores": [
"GG",
"AS",
"ONESTROE"
]
}
]
}
Key | Type | Description |
---|---|---|
underMaintenance | boolean | 現在、メンテナンスを設定しているかどうか |
maintenances | Object | メンテナンスが設定されている場合、メンテナンスの基本情報 |
maintenances.typeCode | Enum | APP:ゲームで設定したメンテナンス SYSTEM:Gamebaseシステムで設定したメンテナンス |
maintenances.beginDate | String | メンテナンス開始時間。ISO 8601 |
maintenances.endDate | String | メンテナンス終了時間。ISO 8601 |
maintenances.url | String | 詳細なメンテナンスURL |
maintenances.message | String | メンテナンスメッセージ |
maintenances.targetStores | Array[Enum] | 特定のクライアントに対してのみメンテナンスを設定した時、メンテナンスが設定されたクライアントのストアコード - GG:Google - ONESTORE - AS:AppStore |
[Error Code]
Consoleを通して発行されたクーポンコードに対して、有効性の検証およびクーポン状態の変更を行います。有効なクーポンの場合、消費状態に変更し、レスポンス結果で支給するアイテム情報を返します。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-gateway/v1.2/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またはパラメータ省略 - GG:Google - ONESTORE:ONE store - AS:AppStore |
[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などでストア決済が完了後、ユーザーにアイテムを支給する前に決済することを知らせる必要があります。決済1件当たり、1回のみ決済可能で、決済の状態が正常でない場合は消費しません。 (決済が完了した場合、ユーザーの決済およびアイテム支給が正常に完了したと判断)
消費(Consume)しない決済履歴はSDKおよびサーバーの未消費決済履歴照会APIで照会できます。またアイテム登録時、商品タイプが一回性(CONSUMABLE)のアイテム決済についてのみ消費処理されます。
[参考] 決済1件当たり1回消費可能で、決済しなかった決済はIAPでアイテムを支給しなかったものと見なします。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.2/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 | mandatory | 決済番号 |
accessToken | String | mandatory | 決済認証トークン(ログイン認証トークンではない) |
[参考] クライアントでrequestPurchase APIを呼び出した時、返されたpurchaseTokenの値がaccessTokenに使用
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"price": 1500.0,
"currency": "KRW",
"productSeq": 1000292
}
}
Key | Type | Description |
---|---|---|
result | Object | 決済基本情報 |
result.price | Float | 決済価格 |
result.currency | String | 決済通貨 |
result.productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
[Error Code]
決済が完了したが、まだ消費(Consume)していない未消費決済履歴を照会できます。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.2/apps/{appId}/consumable |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"marketId": "GG",
"userChannel": "GF",
"userKey": "QXG774PMRZMWR3BR"
}
Name | Type | Required | Value |
---|---|---|---|
marketId | String | mandatory | ストアコード GG:Google、AS:Apple、ONESTORE:ONEstore |
userChannel | String | mandatory | ユーザーチャンネル 現在は未実装状態で、常に GF 値を設定 |
userKey | String | mandatory | ユーザーID |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "success"
},
"result": [
{
"paymentSeq": "2016122110023124",
"productSeq": 1000292,
"currency": "KRW",
"price": 1000.0,
"accessToken": "oJgM1EfDRjnQY7yqhWCUVgAXsSxLWq698t8QyTzk3NeeSoytKxtKGjldTc1wkSktgzjsfkVTKE50DoGihsAvGQ"
},
{
"paymentSeq": "2016122110023125",
"productSeq": 1000292,
"currency": "KRW",
"price": 1000.0,
"accessToken": "7_3zXyNJub0FNLed3m9XRAAXsSxLWq698t8QyTzk3NeeSoytKxtKGjldTc1wkSktgzjsfkVTKE50DoGihsAvGQ"
}
]
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 決済基本情報 |
result[].paymentSeq | String | 決済番号 |
result[].productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
result[].currency | String | 決済通貨 |
result[].price | Float | 決済価格 |
result[].accessToken | String | 決済認証トークン |
[Error Code]
ユーザーが現在定期購入中の決済を照会できます。
[Method, URI]
Method | URI |
---|---|
POST | /tcgb-inapp/v1.2/apps/{appId}/active-subscriptions |
[Request Header]
共通事項確認
[Path Variable]
Name | Type | Value |
---|---|---|
appId | String | NHN CloudプロジェクトID |
[Request Parameter]
なし
[Request Body]
{
"marketId": "GG",
"packageName": "com.toast.gamebase",
"userChannel": "GF",
"userKey": "QXG774PMRZMWR3BR"
}
Name | Type | Required | Value |
---|---|---|---|
marketId | String | mandatory | ストアコード GG:Google、AS:Apple、ONESTORE:ONEstore |
packageName | String | mandatory | コンソールに登録したアプリのpackageName |
userChannel | String | mandatory | ユーザーチャンネル 現在は未実装状態で常に GF 値を設定 |
userKey | String | mandatory | ユーザーID |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": [
{
"channel": "GF",
"userId": "string",
"paymentSeq": "2018102610330423",
"appId": "com.toast.gamebase",
"productId": "subs_p1w",
"productType": "AUTO_RENEWABLE",
"productSeq": 1002904,
"currency": "KRW",
"price": 1000.0,
"paymentId": "GPA.3375-2193-1175-57698",
"originalPaymentId": "GPA.3375-2193-1175-57698",
"purchaseTimeMillis": 1540522998289,
"expiryTimeMillis": 1541134994548
}
]
}
Key | Type | Description |
---|---|---|
result | Array[Object] | 決済基本情報 |
result[].channel | String | ユーザーチャンネル |
result[].userId | String | ユーザーID |
result[].paymentSeq | String | 決済番号 |
result[].appId | String | パッケージ名 |
result[].productId | String | ストアに登録された商品(アイテム)識別子 |
result[].productType | String | 商品(アイテム)タイプ 定期購入: AUTO_RENEWABLE |
result[].productSeq | Long | 決済アイテム番号(consoleに登録されたアイテム固有番号) |
result[].currency | String | 決済通貨 |
result[].price | Float | 決済価格 |
result[].paymentId | String | 最近更新されたストア決済番号 |
result[].originalPaymentId | String | 最初のストア決済番号 |
result[].purchaseTimeMillis | Long | 最近更新された時間 |
result[].expiryTimeMillis | Long | 定期購入終了時間 |
[Error Code] エラーコード
Gamebaseは、NHN Cloud LeaderboardサービスのサーバーAPIに対してWrapping機能を提供します。Wrapping機能を使用すれば、ユーザーサーバーにおいて一貫したインターフェースでNHN Cloudサービスを使用することができます。
API | Method | Wrapping URI | Leaderboard URI |
---|---|---|---|
Factorに登録されたユーザー数を照会 | GET | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/user-count | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/user-count |
単一ユーザーのスコア/ランキングを照会 | GET | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/users?userId={userId} | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users?userId={userId} |
複数のユーザーのスコア/ランキングを照会 | POST | /tcgb-leaderboard/v1.2/apps/{appId}/get-users | /leaderboard/v2.0/appkeys/{appKey}/get-users |
一定範囲の全体スコア/ランキングを照会 | GET | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/users?start={start}&size={size} | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users?start={start}&size={size} |
単一ユーザーのスコアを登録 | POST | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/users/{userId}/score | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users/{userId}/score |
単一ユーザーのスコア/ExtraDataを登録 | POST | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/users/{userId}/score-with-extra | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users/{userId}/score-with-extra |
複数のユーザーのスコアを登録 | POST | /tcgb-leaderboard/v1.2/apps/{appId}/scores | /leaderboard/v2.0/appkeys/{appKey}/scores |
複数のユーザーのスコア/ExtraDataを登録 | POST | /tcgb-leaderboard/v1.2/apps/{appId}/scores-with-extra | /leaderboard/v2.0/appkeys/{appKey}/score-with-extra |
単一ユーザーのLeaderboardの情報を削除 | DELETE | /tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/users | /leaderboard/v2.0/appkeys/{appKey}/factors/{factor}/users |
該当するAPIに対する詳細説明は、次のリンクをご参考ください。
[Game > Leaderboard > APIガイド]((https://docs.nhncloud.com/ja/Game/Leaderboard/ja/api-guide/)
Content-Type:application/json
X-TCGB-Transaction-Id:88a1ae42-6b1d-48c8-894e-54e97aca07fq
X-Secret-Key:IgsaAP
GET https://api-gamebase.cloud.toast.com/tcgb-leaderboard/v1.2/apps/{appId}/factors/{factor}/user-count
API呼び出し失敗の原因に対するお問い合わせがある場合、API呼び出しURL(HTTP bodyがある場合は、bodyと一緒に)とそれに対するレスポンス結果をカスタマーセンターにアップロードしてください。なるべく早くお答えいたします。
GET https://api-gamebase.cloud.toast.com/tcgb-launching/v1.2/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.2/apps/C3JmSctU/maintenances/under-maintenance"
},
"isSuccessful": false
}
}