如何解决SteamWorks发布者密钥调用IInventoryService时的403 Forbidden错误?
解决Steam合作伙伴API IInventoryService/GetInventory 403 Forbidden错误
以下是针对你遇到的403错误的排查和解决方向:
确认密钥权限与关联关系
Steam发布者密钥有严格的权限划分,IInventoryService属于合作伙伴专属接口,需满足两个条件:- 密钥是绑定到目标游戏的发布者密钥,而非普通的Web API密钥;
- 在Steamworks后台对应App的「API Access」页面,已启用IInventoryService的访问权限,且密钥所属账户拥有该App的开发者/发布者角色。
修正请求参数的拼接问题
你代码中的&是HTML转义字符,在JavaScript的fetch请求中会被当作URL的一部分,导致Steam无法正确解析appid和steamid参数,最终只识别到key参数,触发验证错误。
修正后的请求代码:const response = await fetch(`https://partner.steam-api.com/IInventoryService/GetInventory/v1/?key=${process.env.STEAMAPI}&appid=${appId}&steamid=${steamId}`);同时要验证:
steamid必须是64位格式(如765611980XXXXXXXXX),不能使用32位ID或自定义URL中的昵称ID;appid是你拥有发布权限的游戏ID,且该游戏已在Steamworks后台完成Inventory Service的配置。
检查IP白名单设置
Steam发布者密钥支持IP白名单限制,若你的服务器公网IP不在白名单内,会直接返回403。登录Steamworks后台的密钥详情页,确认当前服务器IP已添加到白名单,或暂时关闭IP限制进行测试。排除网络与代理干扰
若服务器通过代理访问Steam API,可能代理IP未在白名单中,或代理修改了请求头导致授权失败。尝试直接用服务器公网IP发起请求,或关闭代理测试。
内容的提问来源于stack exchange,提问作者AlphaWolf182
相关产品推荐
相关产品推荐

