国产游戏出海新闻与海外营销

常识

Steam API 使用与修改指南,从申请 Key 到调用游戏数据

2026-09-21 07:46:01 | 分类: 常识 | 查看: 104

Steam 提供了多种 API(应用程序接口),可以让我们在自己的程序、网站或脚本中读取玩家资料、游戏库存、成就、新闻等公开数据,很多新手会把“Steam Web API”和“Steamworks API”混淆,这篇文章会先帮你分清楚两者的区别,再手把手教你完成 Web API Key 的申请和第一次接口调用。


先分清两种 Steam API

Steam Web API

这是最常用的接口,适合获取公开数据。

Steam API 使用与修改指南,从申请 Key 到调用游戏数据

  • 玩家昵称、头像、个人资料
  • 玩家拥有的游戏列表
  • 游戏的成就、统计信息
  • 游戏新闻、公告

它通过 HTTP 请求访问,只需要申请一个 API Key,用任何语言都可以调用。

Steamworks API

这是给游戏开发者用的深度集成接口,主要用于在游戏里接入 Steam 成就、排行榜、多人联机、云存档、用户认证等功能。

如果你只是想读取数据、做网站或机器人,通常使用 Steam Web API 就够了,要使用 Steamworks API,需要注册成为 Steamworks 开发者并下载 SDK,门槛较高。

下面重点介绍 Steam Web API 的使用方法。


申请 Steam Web API Key

使用 Steam Web API 前,必须先申请一个 API Key。

申请步骤

  1. 登录你的 Steam 账号。

  2. 打开浏览器,访问:

    https://steamcommunity.com/dev/apikey
  3. 在页面中输入一个域名。
    如果你只是本地开发,可以填写:

    localhost

    或者:

    0.0.1
  4. 勾选同意条款,点击“注册”或“创建”。

  5. 系统会生成一串 API Key,

    AB12CD34EF56GH78IJ90KL12MN34OP56
  6. 妥善保存这个 Key。
    不要把它提交到公开仓库,也不要放在前端代码里,否则别人可能盗用。

注意:API Key 相当于你的身份凭证,请像保管密码一样保管它。


Steam Web API 的基本调用格式

Steam Web API 的基础地址是:

https://api.steampowered.com/

每个接口都有自己的路径,

https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/

调用时通常需要传递参数,最常见的参数是:

  • key:你的 API Key
  • steamids:玩家 SteamID,64 位数字
  • appid:游戏 AppID,Dota 2 是 570,CS:GO 是 730

一个完整的请求示例:

https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=你的KEY&steamids=76561198000000000

返回结果是 JSON 格式,可以很方便地解析。


第一次调用:获取玩家信息

下面用一个实际例子,获取玩家的昵称和头像。

使用浏览器测试

你可以在浏览器地址栏直接输入:

https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=你的KEY&steamids=76561198000000000

将 你的KEY 替换成你的 API Key,将 76561198000000000 替换成真实 SteamID。

返回的 JSON 类似:

{
  "response": {
    "players": [
      {
        "steamid": "76561198000000000",
        "personaname": "示例玩家",
        "profileurl": "https://steamcommunity.com/id/example/",
        "avatarfull": "https://avatars.steamstatic.com/example.jpg",
        "loccountrycode": "CN"
      }
    ]
  }
}

其中常用字段:

  • personaname:玩家昵称
  • avatarfull:完整头像地址
  • profileurl:个人资料主页
  • loccountrycode:国家/地区代码

使用 Python 调用 Steam API

如果你希望在自己的程序里使用,可以用 Python 的 requests 库。

安装 requests

pip install requests

Python 示例代码

import requests
API_KEY = "你的STEAM_API_KEY"
steam_id = "76561198000000000"
url = "https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/"
params = {
    "key": API_KEY,
    "steamids": steam_id
}
response = requests.get(url, params=params)
data = response.json()
players = data["response"]["players"]
if players:
    player = players[0]
    print("昵称:", player["personaname"])
    print("头像:", player["avatarfull"])
    print("资料页:", player["profileurl"])
else:
    print("未找到该玩家")

使用 JavaScript 调用 Steam API

前端调用时,如果直接使用 fetch,可能会遇到跨域问题,更推荐通过后端代理请求,不过作为演示,可以这样写:

const API_KEY = '你的STEAM_API_KEY';
const steamId = '76561198000000000';
const url = `https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=${API_KEY}&steamids=${steamId}`;
fetch(url)
  .then(res => res.json())
  .then(data => {
    const player = data.response.players[0];
    console.log('昵称:', player.personaname);
    console.log('头像:', player.avatarfull);
  })
  .catch(err => {
    console.error('请求失败:', err);
  });

提示:如果你在前端直接调用遇到 CORS 错误,请使用自己的后端服务器转发请求,不要暴露 API Key。


常用 Steam Web API 接口推荐

下面列出几个非常有用的接口,你可以根据需要替换参数。

获取玩家好友列表

https://api.steampowered.com/ISteamUser/GetFriendList/v0001/?key=KEY&steamid=STEAMID

获取玩家拥有的游戏

https://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=KEY&steamid=STEAMID&include_appinfo=1&include_played_free_games=1

获取某个游戏的成就列表

https://api.steampowered.com/ISteamUserStats/GetSchemaForGame/v0002/?key=KEY&appid=440

获取某个玩家在指定游戏中的成就进度

https://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?key=KEY&steamid=STEAMID&appid=440

获取游戏新闻

https://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/?appid=440&count=5&maxlength=300

通过自定义 URL 获取 SteamID

如果你的好友链接是:

https://steamcommunity.com/id/example

可以使用:

https://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=KEY&vanityurl=example

返回结果中会包含 64 位 SteamID。


常见问题和注意事项

403 Forbidden

通常是 API Key 错误、未填写域名或 Key 没有权限,检查 Key 是否完整复制。

401 Unauthorized

请求中缺少 key 参数,或者 Key 已失效。

返回数据为空

有些玩家的资料设置了隐私权限,此时部分接口可能返回空数据或只有基础信息。

浏览器跨域问题

Steam Web API 不一定支持浏览器直接跨域请求,建议通过后端转发。

请求频率限制

免费申请的 Key 有调用频率限制,如果短时间内大量请求,可能会被暂时拒绝,建议在程序中加入缓存机制,避免重复请求相同数据。

保护 API Key

不要把 Key 写在前端 JavaScript 中,也不要提交到 GitHub 等公开平台,可以放在环境变量或后端配置中。


进阶:Steamworks API 简介

如果你不只是想读取数据,而是希望在游戏中实现:

  • Steam 成就
  • 排行榜
  • 好友系统
  • 多人联机
  • DLC 校验
  • Steam 云存档

那么你需要使用 Steamworks API。

使用流程

  1. 访问 Steamworks 官方合作伙伴页面:

    https://partner.steamgames.com/
  2. 注册并完成开发者身份验证。

  3. 创建你的游戏应用,获得 AppID。

  4. 下载 Steamworks SDK。

  5. 将 SDK 集成到你的游戏项目中。
    支持 Unity、Unreal Engine、C++ 等。

  6. 参考官方文档:

    https://partner.steamgames.com/doc/api

Steamworks API 的功能比 Web API 更强大,但学习和集成成本也更高,对于一般的数据读取、网站展示、数据分析,使用 Steam Web API 已经足够。


Steam API 的使用可以总结为以下几步:

  1. 明确需求:读取公开数据用 Web API,游戏集成用 Steamworks API。
  2. 申请 Web API Key:访问 steamcommunity.com/dev/apikey。
  3. 查找合适的接口:参考官方文档或常用接口列表。
  4. 构造 HTTP 请求,传入 key、steamids、appid 等参数。
  5. 解析 JSON 返回结果。
  6. 注意 Key 安全和调用频率。

掌握这些基础后,你就可以在自己的项目中使用 Steam API 获取玩家信息、游戏库存、成就和新闻等数据了,祝你调用顺利!