You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需用户或客户端操作,从服务器访问Google Play Games公开排行榜?

服务器端无用户授权访问Google Play Games排行榜方案

完全可以实现以服务账户/管理员身份从自有服务器随时访问排行榜,无需依赖客户端的用户令牌,具体操作步骤如下:

1. 创建并配置Google Cloud服务账户

  • 登录Google Cloud控制台,选择和你的Play Games Services绑定的游戏项目
  • 进入「IAM与管理」>「服务账户」,创建新的服务账户
  • 给该服务账户分配Games Services Admin角色(或者更精细的权限,比如games.scores.list、games.leaderboards.list,确保拥有读取排行榜的权限)
  • 下载服务账户的JSON密钥文件,妥善存储在服务器的安全位置,不要泄露

2. 启用Google Play Games Admin API

  • 在Google Cloud控制台的「API和服务」>「库」中,搜索并启用「Google Play Games Admin API」

3. 服务器端调用API(以Python为例)

先安装必要的依赖包:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

然后编写核心调用代码:

from google.oauth2 import service_account
from googleapiclient.discovery import build

# 替换为你的服务账户密钥路径和目标排行榜ID
SERVICE_ACCOUNT_KEY_PATH = "your-service-account-key.json"
TARGET_LEADERBOARD_ID = "your-leaderboard-id"
API_SCOPES = ["https://www.googleapis.com/auth/games"]

# 初始化服务账户认证
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_KEY_PATH, scopes=API_SCOPES
)

# 构建Games API客户端
games_service = build("games", "v1", credentials=credentials)

# 获取排行榜公开分数数据
def fetch_leaderboard_scores(max_results=100):
    request = games_service.leaderboards().scores(
        leaderboardId=TARGET_LEADERBOARD_ID,
        maxResults=max_results,
        collection="PUBLIC"  # 选择公开排行榜,若需社交榜可改为SOCIAL
    )
    return request.execute()

# 调用示例
if __name__ == "__main__":
    leaderboard_data = fetch_leaderboard_scores()
    print(leaderboard_data)

4. 注意事项

  • 权限验证:确保服务账户的角色权限覆盖了排行榜读取需求,Games Services Admin角色默认包含所有必要权限
  • 排行榜可见性:如果你的排行榜设置为公开,服务账户可直接访问;私有排行榜需确认服务账户的访问权限
  • API配额:注意Google Play Games API的调用配额限制,避免高频调用触发限流

内容的提问来源于stack exchange,提问作者Gamengineer314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:07:50