H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用
官方文档地址
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】
- openid.ns //这个参数指定OpenID协议的命名空间(Namespace),它是用来确定OpenID协议版本的。例如,openid.ns=http://specs.openid.net/auth/2.0 表示使用的是OpenID 2.0协议。
- openid.mode 这个参数指示OpenID提供商(Provider)应执行的操作类型。常见的模式包括:
- checkid_setup: 请求OpenID认证(用户可能需要手动确认)。
- checkid_immediate: 请求OpenID认证,但不需要用户干预,适用于自动登录场景。
- id_res: OpenID认证成功后的响应模式。
- cancel: 用户取消了认证过程。
- setup_needed: 用户需要设置其OpenID标识。
- failure: OpenID认证失败。
- openid.return_to 这个参数指定OpenID认证完成后返回的URL地址。当认证过程结束时,用户会被重定向回这个URL。
- openid.realm 这个参数指定了依赖方(Relying Party)的应用范围或信任域。它通常与用户的登录会话相关联,表明哪些站点被认为是可信的。
- openid.identity 这个参数包含了用户希望使用的OpenID标识符。如果用户没有明确提供一个标识符,那么这个值可能会指向用户的默认OpenID提供商。
- openid.claimed_id 这个参数表示用户声称拥有的OpenID标识符。它通常是用户提供的URL,指向他们的OpenID标识。如果用户提供了openid.identity,则openid.claimed_id通常是指定的标识符。


3.获取玩家数据:
-
使用 GetPlayerSummaries 方法获取玩家信息。
https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=YOUR_API_KEY&steamids=STEAM_ID
4.创建API服务:
// src/api.js
import 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
- steam登录
-
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)
相关文章:
H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用
官方文档地址 1.注册 Steam API Key: 你需要一个 Steam Web API Key,可以在 Steam API Key 页面 获取。https://steamcommunity.com/dev/apikey 这里开发做demo用自己steam账户的就好,后续上线要用公司的账户 2.使用 OpenID 登录ÿ…...
pytorch多GPU训练教程
pytorch多GPU训练教程 文章目录 pytorch多GPU训练教程1. Torch 的两种并行化模型封装1.1 DataParallel1.2 DistributedDataParallel 2. 多GPU训练的三种架构组织方式2.2 数据不拆分,模型拆分(Model Parallelism)2.3 数据拆分,模型…...
力扣--LCR 178.训练计划VI
题目 教学过程中,教练示范一次,学员跟做三次。该过程被混乱剪辑后,记录于数组 actions,其中 actions[i] 表示做出该动作的人员编号。请返回教练的编号。 示例 1: 输入:actions [5, 7, 5, 5] 输出&#…...
Linux 网络接口配置
在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如此对这些接口进行配置. 在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络…...
【从零开始入门unity游戏开发之——C#篇01】理论开篇
文章目录 前言前置条件什么是编程?什么是代码?什么是编程语言?常见的编程语言什么是C#?学习Unity为什么要先学习C#?选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...
ABAP开发-批量导入BAPI和BDC_1
系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、概念二、BDC和BAPI数据导入1、BDC数据导入(录屏)2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中,对一个事务码反复操作并且达到批量处理数据的效果࿰…...
RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式
文章目录 六. RPC(RPC通信模式)客户端服务端 七. Publisher Confirms(发布确认模式)1. Publishing Messages Individually(单独确认)2. Publishing Messages in Batches(批量确认)3. Handling Publisher Confirms Asynchronously(异步确认) 六. RPC(RPC通信模式) 客⼾端发送消息…...
并非传统意义上的整体二分
是的,如标题所见,本文章会以作者所理解的整体二分思想来介绍一系列整体二分食用方法。 一下内容均是作者本人理解,可能会与算法本身冲突。 1 本质 1.1 板子及从中的启发 我们在做主席树板子的时候,如果使用整体二分࿰…...
PostgreSQL的一主一从集群搭建部署 (同步)
一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2 二、安装数据库 源码包方式(主) 1、创建用户 [rootkeep-postgres12-node1 ~]# groupadd postgres [rootkeep-post…...
ios逆向某新闻 md5+aes
本期的案例比较简单,也许是ios逆向算法本来就比较简单的原因,所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例,这也是首篇ios的案例,所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…...
grpc的负载均衡
grpc的负载均衡分为client-side load balance和server-side load balance。 所谓的“客户端负载均衡”是指主调方调用被调方的时候,在grpc.DialContext里需要指定grpc.WithDefaultServiceConfig,这个DefaultServiceConfig默认是用pick-first策略。也支持…...
提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)
作者:来自 Elastic Shubha Anjur Tupil 几分钟内即可开始使用 Elastic Rerank 模型:强大的语义搜索功能,无需重新索引,提供灵活性和成本控制;高相关性、顶级性能和文本搜索效率。 使用我们全新的先进跨编码器 Elastic …...
【51单片机】程序实验1112.外部中断-定时器中断
主要参考学习资料:B站【普中官方】51单片机手把手教学视频 前置知识:C语言 单片机套装:普中STC51单片机开发板A4标准版套餐7 码字不易,求点赞收藏加关注(•ω•̥) 有问题欢迎评论区讨论~ 目录 程序实验11&12.外部中断-定时器…...
webrtc-java:引领Java进入实时通信新时代
webrtc-java:引领Java进入实时通信新时代 项目地址:https://gitcode.com/gh_mirrors/we/webrtc-java 在现代互联网应用中,实时通信(Real-Time Communication, RTC)已成为连接人们的桥梁。而说起RTC技术的先锋,不得不…...
TongWeb7-东方通快速使用手册
TongWeb7-东方通 快速使用手册 文章目录 第1章 TongWeb7 产品介绍 1.1 概述1.2 规范支持 第2章 TongWeb7 安装 2.1 TongWeb7 安装要求 2.1.1 TongWeb7 支持的操作系统2.1.2 系统要求2.1.3 其他 2.2 安装TongWeb72.3TongWeb7 目录结构说明2.4 TongWeb7 的启动和停止 第3章 应用…...
JVM内存区块
大家好,经过前两篇文章的介绍,大家对数组也有了一定了解,其实所有的数组都是对象,我们在方法中引用数组的变量叫做引用变量(简称引用),那么数组到底是存放在哪里的呢,为什么引用再出…...
C语言单元总结
黑色加粗表示刷题刷到这样的题 红色加粗表示可能重要 单元一 程序设计宏观认识 C语言程序框架 C语言程序最基本的程序框架由两部分构成,分别是 1) 编译预处理 2) 函数组 C语言程序构成 C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成…...
通过PS和Unity制作2D动画之一:创建形象
1、通过路径画出轮廓 使用路径的过程中,需要注意: 1)如果使用形状工具作图,比如使用椭圆工具画正圆形,需要设置其属性为“路径”。 2)使用路径选择工具,再按住Alt键点击某个路径,可…...
Notable是一款优秀开源免费的Markdown编辑器
一、Notable简介 Notable是一款开源的跨平台Markdown编辑器,支持Linux、MacOS、Windows以及国产操作系统等多种主流操作系统。它以其高颜值和强大的功能,成为了许多用户的首选工具。 主要特性 实时预览: Notable提供了实时预览功能&…...
基于MFC绘制门电路
MFC绘制门电路 1. 设计内容、方法与难点 本课题设计的内容包括了基本门电路中与门和非门的绘制、选中以及它们之间的连接。具体采用的方法是在OnDraw函数里面进行绘制,并设计元器件基类,派生出与门和非门,并组合了一个引脚类,在…...
力扣原题《有效的数独游戏》,纯手搓,已验证
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…...
如何在5分钟内将网页SVG完美保存为可编辑矢量文件?
如何在5分钟内将网页SVG完美保存为可编辑矢量文件? 【免费下载链接】svg-crowbar Extracts an SVG node and accompanying styles from an HTML document and allows you to download it all as an SVG file. 项目地址: https://gitcode.com/gh_mirrors/sv/svg-cr…...
Qwen3.5-4B-Claude-Opus部署教程:supervisor托管+健康检查全流程详解
Qwen3.5-4B-Claude-Opus部署教程:supervisor托管健康检查全流程详解 1. 模型介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是一个基于 Qwen3.5-4B 的推理蒸馏模型,重点强化了结构化分析、分步骤回答、代码与逻辑类问题的处理能力。该版本…...
UE4/UE5碰撞事件全解:从Overlap到Hit的7个必知配置项
UE4/UE5碰撞系统深度解析:从基础配置到实战避坑指南 在虚幻引擎开发中,碰撞系统是构建交互体验的核心支柱之一。无论是角色移动、物体交互还是战斗判定,都离不开精准的碰撞检测机制。本文将深入剖析UE4/UE5中Overlap与Hit事件的本质区别&…...
Beyond Compare 5 三步快速激活方案:从评估错误到专业版授权的完整指南
Beyond Compare 5 三步快速激活方案:从评估错误到专业版授权的完整指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5 作为业界领先的文件比对与合并工具…...
企业级流程引擎如何重塑低代码开发?基于Vite+Vue3的可视化建模实践
企业级流程引擎如何重塑低代码开发?基于ViteVue3的可视化建模实践 【免费下载链接】vite-vue-bpmn-process 基于 Vite TypeScript Vue3 NaiveUI Bpmn.js 的流程编辑器(前端部分)。支持高度自定义🚀🚀🚀。…...
打破学术写作边界:NativeOverleaf离线工作流全解析
打破学术写作边界:NativeOverleaf离线工作流全解析 【免费下载链接】NativeOverleaf Next-level academia! Repository for the Native Overleaf project, attempting to integrate Overleaf with native OS features for macOS, Linux and Windows. 项目地址: ht…...
从XMind到禅道:定制化脚本实现测试用例高效导入
1. 为什么需要从XMind导入测试用例到禅道? 在日常测试工作中,XMind思维导图因其直观的结构和高效的编辑方式,成为很多测试工程师编写测试用例的首选工具。我自己也深有体会,用XMind梳理测试点特别顺手,一个下午就能完成…...
OpenClaw自动化测试:百川2-13B量化模型多场景准确率评估
OpenClaw自动化测试:百川2-13B量化模型多场景准确率评估 1. 测试背景与目标 去年冬天,我在为团队寻找一个能处理本地自动化任务的AI助手时,偶然发现了OpenClaw这个开源框架。当时最让我头疼的是,市面上的大模型要么太贵…...
别再被‘小样本’难倒了!用Python的PyMC3库实战层次贝叶斯模型
用PyMC3解锁小样本分析:层次贝叶斯建模实战指南 当你的数据集像便利店冰柜里的酸奶——每个品类只有零星几瓶时,传统统计方法往往会束手无策。想象你正分析20个城市的新开门店周销售额,每个城市却只有3-5条数据记录。这时,层次贝叶…...
