現在の順位を取得する

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

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

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

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

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'];

// 現在の自分の順位を取得する
$rankingTableName = 'ranking-0001';
$gameMode = 'mode-0001';
$client = new Gs2RankingClient($region, $credentials);
$request = [
        'rankingTableName' => $rankingTableName,
        'gameMode' => $gameMode,
        'accessToken' => $accessToken
];
$result = $client->getMyRank($request);

// $result['index'] に先頭を1としたインデックス
// $result['rank'] に同一スコアを同一順位とした順位 が返ります

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']

# 現在の自分の順位を取得する
ranking_table_name = 'ranking-0001'
game_mode = 'mode-0001'
client = Gs2::Ranking::Client.new(region, CLIENT_ID, CLIENT_SECRET)
request = {
    'rankingTableName' => ranking_table_name,
    'gameMode' => game_mode,
    'accessToken' => access_token
}
result = client.get_my_rank(request)

# result['index'] に先頭を1としたインデックス
# result['rank'] に同一スコアを同一順位とした順位 が返ります

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 rankingTableName = "ranking-0001";
String gameMode = "mode-0001";
Gs2RankingClient client = new Gs2RankingClient(credentials)
        .withRegion(region);
GetMyRankRequest request = new GetMyRankRequest()
        .withRankingTableName(rankingTableName)
        .withGameMode(gameMode)
        .withAccessToken(accessToken);
GetMyRankResult result = client.getMyRank(request);

// result.getIndex() に先頭を1としたインデックス
// result.getRank() に同一スコアを同一順位とした順位 が返ります