官方文档地址
1.注册 Steam API Key:
你需要一个 Steam Web API Key,可以在 Steam API Key 页面 获取。https://steamcommunity.com/dev/apikey
这里开发做demo用自己steam账户的就好,后续上线要用公司的账户
2.使用 OpenID 登录:
实现 Steam OpenID 登录,以便用户通过 Steam 账户登录你的应用。例如网易Buff的登录,带参跳转到steam登录页,登陆成功后steam会自动回调并返回用户数据
这一步可以后台对接OpenID 给一个完整的登陆链接,H5负责跳转该链接登录、响应steam回调和绑定检测等
https://steamcommunity.com/openid/login?openid.ns=【openid.ns】&openid.mode=【openid.mode】&openid.return_to=【openid.return_to】&openid.realm=【openid.realm】&openid.identity=【openid.identity】&openid.claimed_id=【openid.claimed_id】
3.获取玩家数据:
使用 GetPlayerSummaries 方法获取玩家信息。https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=YOUR_API_KEY&steamids=STEAM_ID
4.创建API服务:
// src/api.jsimport axios from 'axios';const API_KEY = 'YOUR_API_KEY';const BASE_URL = 'https://api.steampowered.com';export const getPlayerData = async (steamId) => { try { const response = await axios.get(`${BASE_URL}/ISteamUser/GetPlayerSummaries/v2/`, { params: { key: API_KEY, steamids: steamId, }, }); return response.data.response.players[0]; } catch (error) { console.error('Error fetching player data:', error); throw error; }};
5.组件内调用:
<template> <div v-if="player"> <h1>{{ player.personaname }}</h1> <img :src="player.avatar" alt="Avatar"> </div> <div v-else> Loading... </div></template><script>import { ref, onMounted } from 'vue';import { getPlayerData } from './api';export default { setup() { const player = ref(null); onMounted(async () => { try { player.value = await getPlayerData('STEAM_ID'); } catch (error) { console.error(error); } }); return { player }; },};</script>
6.接口返回
以我自己的steami【76561199022526231】为例:
页面
steam登录https://steamcommunity.com/login/home/?goto=
steam登录后个人信息页:https://steamcommunity.com/profiles/76561199022526231
steam公开个人信息功能页 https://steamcommunity.com/profiles/76561199022526231/edit/settings
API
主动获取他人资料的官方:https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=【Steamworks Web API 】&steamids=76561199022526231
steamid - 用户64位ID
communityvisibilitystate - int型,资料可见模式 1 = 隐私 2 = 仅好友可见 3 = 用户好友的好友也可见 4 = 只对登录Steam的用户可见 5 = 公开,任何人可见
profilestate - 如果为1,该用户填写了自己的资料
personaname - 用户昵称
lastlogoff - unix时间格式,上次在线时间
profileurl - 用户Steam社区资料地址
avatar - 32*32图像
avatarmedium - 64*64图像
avatarfull - 184*184图像
personastate - 用户状态 0 - 不在线 (如果资料为隐私也是如此) 1 - 在线 2 - 忙碌 3 - 离开 4 - 休息?Snooze 5 - 寻找交易中 6 - 寻找游戏中
commentpermission - 如果出现,代表任何人都可以评论
realname - 真实姓名
timecreated - UNIX时间形式,建号?(the profile was created)时间
loccountrycode - ISO 3166 代码,用户所在国家
locstatecode - 可变代码长度,用户所在州
loccityid - 一串INT型Steam内部ID,代表所在城市
gameid - 如果用户在游戏中,这会是以String形式的游戏APP ID(DOTA2是570)