現在のスタミナ値を取得する

ここではサーバサイドSDKの解説をしています。

GS2 SDK for Unity のサンプルは GS2 SDK for Unity のページをご参照ください。

事前にGS2マネージメントコンソールか、SDKからStaminaPoolを作成しておきます。

(このサンプルは stamina-0001 という名前の StaminaPool が作成されているものとしています)

PHP

// アクセス先リージョンとGSIを設定
$region = 'ap-northeast-1';
$credentials = new Gs2Credentials(CLIENT_ID, CLIENT_SECRET);

// アクセストークンを取得
$serviceId = 'service-0001';
$userId = 'user-0001';
$authclient = new Gs2AuthClient($region, $credentials);
$request = [
    'serviceId' => $serviceId,
    'userId' => $userId
];
$result = $authclient->login($request);
$accessToken = $result['token'];

// 現在のスタミナ値を取得する
$staminaPoolName = 'stamina-0001';
$client = new Gs2StaminaClient($region, $credentials);
$request = [
        'staminaPoolName' => $staminaPoolName,
        'maxValue' => 50,
        'accessToken' => $accessToken
];
$result = $client->getStamina($request);
$stamina = $result['item'];

// $result['nextIncreaseTimestamp'] に次回スタミナ値が回復するタイムスタンプ(unixepoch)
// $stamina['value'] に現在のスタミナ値
// $stamina['overflow'] に最大値を超えて回復したことがある場合はあふれたスタミナ値 が返ります

Ruby

# リージョンを設定
region = 'ap-northeast-1'

# アクセストークンを取得
service_id = 'service-0001'
user_id = 'user-0001'
authclient = Gs2::Auth::Client.new(region, CLIENT_ID, CLIENT_SECRET)
request = {
    'serviceId' => service_id,
    'userId' => user_id
}
result = authclient.login(request)
access_token = result['token']

# 現在のスタミナ値を取得する
stamina_pool_name = 'stamina-0001'
client = Gs2::Stamina::Client.new(region, CLIENT_ID, CLIENT_SECRET)
request = {
    'staminaPoolName' => stamina_pool_name,
    'maxValue' => 50,
    'accessToken' => access_token
}
result = client.get_stamina(request)
stamina = result['item']

# result['nextIncreaseTimestamp'] に次回スタミナ値が回復するタイムスタンプ(unixepoch)
# stamina['value'] に現在のスタミナ値
# stamina['overflow'] に最大値を超えて回復したことがある場合はあふれたスタミナ値 が返ります

Java

// アクセス先リージョンとGSIを設定
String region = "ap-northeast-1";
IGs2Credential credentials = new BasicGs2Credential(CLIENT_ID, CLIENT_SECRET);

// アクセストークンを取得
String serviceId = "service-0001";
String userId = "user-0001";
LoginRequest request = new LoginRequest()
        .withServiceId(serviceId)
        .withUserId(userId);
Gs2AuthClient authclient = new Gs2AuthClient(credentials)
        .withRegion(region);
LoginResult result = authclient.login(request);
String accessToken = result.getToken();

// 現在のスタミナ値を取得する
String staminaPoolName = 'stamina-0001';
Gs2StaminaClient client = new Gs2StaminaClient(credentials)
        .withRegion(region);
GetStaminaResult result = client.getStamina(new GetStaminaRequest()
        .withStaminaPoolName(staminaPoolName)
        .withMaxValue(50)
        .withAccessToken(accessToken));
Stamina stamina = result.getItem();

// result.getNnextIncreaseTimestamp() に次回スタミナ値が回復するタイムスタンプ(unixepoch)
// stamina.getValue() に現在のスタミナ値
// stamina.getOverflow() に最大値を超えて回復したことがある場合はあふれたスタミナ値 が返ります