본문으로 건너뛰기

토큰 조회

액세스 토큰의 정보를 조회하는 API입니다.

URL 확인

이 API는 service-account.playnanoo.com 도메인을 사용합니다.

API 정보

  • URL: https://service-account.playnanoo.com/api/v20240401/token/info
  • Method: GET
  • 인증 필요: 예 (Bearer Token)

요청 파라미터

파라미터타입필수설명
access_tokenstring필수조회할 액세스 토큰
platformstring필수플랫폼 (예: "aos", "ios")
device_idstring필수기기 고유 ID
device_modelstring필수기기 모델명
device_osstring필수기기 OS
device_languagestring필수기기 언어 (예: "KO", "EN")
DeviceInfo 상속

이 API의 Req 클래스는 DeviceInfo를 상속받습니다. DeviceInfo의 모든 속성이 자동으로 포함됩니다.

응답 데이터

Res 클래스

필드타입설명
TokenSerializeTokenData토큰 정보
PlayerSerializePlayerData플레이어 정보

SerializeTokenData 구조

필드타입설명
AccessTokenstring액세스 토큰
RefreshTokenstring리프레시 토큰

SerializePlayerData 구조

필드타입설명
UserUniqueIDstring사용자 고유 ID
OpenIDstring오픈 ID
Nicknamestring닉네임
LinkedIDstring연동 ID
LinkedTypestring연동 타입
PurchaseCountint구매 횟수
PurchaseCurrencyCodestring구매 통화 코드
PurchaseTotalPricedouble총 구매 금액
PurchaseVoidedCountint환불 횟수
PurchaseVoidedCurrencyCodestring환불 통화 코드
PurchaseVoidedTotalPricedouble총 환불 금액
Countrystring국가
Timezonestring타임존
Offsetint시간 오프셋
JoinPeriodint가입 기간

Unity C# 구현

BaseResponse 클래스

모든 API 응답의 기본 클래스입니다.

public class BaseResponse
{
public string ErrorCode;
public string Message;
public string WithdrawalKey;
public string BlockKey;
}

필드 설명:

  • ErrorCode: 에러 코드
  • Message: 에러 메시지
  • WithdrawalKey: 탈퇴 유예 상태인 경우 복구에 필요한 키 (탈퇴 유예 중인 계정만 제공)
  • BlockKey: 차단된 계정인 경우 제공되는 키 (차단된 계정만 제공)

토큰 정보 조회 클래스

using System;
using System.Collections;
using UnityEngine.Networking;

public class TokenInfo
{
static string path = "https://service-account.playnanoo.com/api/v20240401/token/info";

[Serializable]
public class Req : DeviceInfo
{
public string access_token;

public IEnumerator Send(
string access_token,
Action<Res> onSuccess,
Action<BaseResponse> onError)
{
if (!string.IsNullOrEmpty(access_token)) this.access_token = access_token;

yield return HttpClient.Send<Req, Res>(
UnityWebRequest.kHttpVerbGET,
path,
requireToken: true,
body: this,
onSuccess: onSuccess,
onError: onError
);
}
}

[Serializable]
public class Res : BaseResponse
{
public SerializeTokenData Token;
public SerializePlayerData Player;
}

[Serializable]
public class SerializeTokenData
{
public string AccessToken;
public string RefreshToken;
}

[Serializable]
public class SerializePlayerData
{
public string UserUniqueID;
public string OpenID;
public string Nickname;
public string LinkedID;
public string LinkedType;
public int PurchaseCount;
public string PurchaseCurrencyCode;
public double PurchaseTotalPrice;
public int PurchaseVoidedCount;
public string PurchaseVoidedCurrencyCode;
public double PurchaseVoidedTotalPrice;
public string Country;
public string Timezone;
public int Offset;
public int JoinPeriod;
}
}

사용 예제

public void GetTokenInfo(string accessToken)
{
TokenInfo.Req req = new TokenInfo.Req();

StartCoroutine(req.Send(
access_token: accessToken,
onSuccess: res =>
{
// 토큰
Debug.Log($"AccessToken: {res.Token.AccessToken}");
Debug.Log($"RefreshToken: {res.Token.RefreshToken}");

// 플레이어 정보
Debug.Log($"UserUniqueID: {res.Player.UserUniqueID}");
Debug.Log($"OpenID: {res.Player.OpenID}");
Debug.Log($"Nickname: {res.Player.Nickname}");
Debug.Log($"LinkedID: {res.Player.LinkedID}");
Debug.Log($"LinkedType: {res.Player.LinkedType}");
},
onError: (error) =>
{
Debug.LogError($"토큰 정보 조회 실패: [{error.ErrorCode}] [{error.Message}]");
}
));
}
Bearer Token 인증

이 API는 Bearer Token 인증을 사용합니다. requireToken: true로 설정하면 HTTP 헤더에 자동으로 인증 토큰이 포함됩니다.