这是用于访问
Steam 库存服务的接口。
注意: 这是服务接口,此接口中的方法应使用
input_json 参数调用。
请参见
Web API 概览,了解更多有关使用 Steamworks Web API 的信息。
AddItem
POST https://partner.steam-api.com/IInventoryService/AddItem/v1/
| 名称 | 类型 | 是否必需 | 描述 |
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | 与物品相关联的应用程序的 ID。 |
| itemdefid | uint64 | ✔ | 要给予的 itemdefid 列表, 应指定为一个参数系列,命名为“itemdefid[0]”、“itemdefid[1]”,以此类推。 |
| itempropsjson | string | ✔ | |
| steamid | uint64 | ✔ | 要接收物品的玩家的 SteamID。 |
| notify | bool | ✔ | 可选参数,默认为 0。 设为 1 表示用户不在游戏内,并应看见一条 Steam 通知。 |
| requestid | uint64 | ✔ | 可选参数,默认为 0。 客户端可以为请求提供唯一标识符,以将执行次数限制为最多一次。 当再次提交 requestid 时,不会导致操作再次执行;响应消息将为物品因最初的成功操作而具有的当前状态。 |
| trade_restriction | bool | ✔ | 可选参数,默认为 0。 若设置为 1,Steam 会像对待购买而来的物品那样,对该物品应用市场与交易冷却时间限制。 |
AddItem 用于在用户的库存中直接添加新物品。 对于每个 itemdef,都会创建一个该类型的实例,加至目标帐户。
“bundle”(捆绑包)或者“generator”(生成器)类型的物品在添加时解包。 响应消息提供了实际加入库存的物品的信息。
如果 itemdef 未定义或无法解包,或者目标玩家没有所给定的 appid 的权限,那么此调用将失败。
如果有针对玩家的新物品通知,最好由游戏客户端处理。 如果是在玩家离开游戏时调用 AddItem 的,可以选择
notify=1 的设置,以通过 Steam 通知玩家。 这可能会牵涉到 Steam 的玩家通知机制,包括叠加界面弹出通知。
可选用的
requestid 参数能让客户端进行幂等调用。 如果客户端不确定一个请求是否已在服务器上成功完成,可以重新使用最初的请求 ID,再次进行请求。
如果再次请求,响应将显示物品因最初的操作而具有的当前状态,并不会进行任何更改。
如果最初的请求在服务器上失败,重新使用同一个请求 ID 将重新尝试操作,而非报告之前的错误结果。
如果用户通过免费许可的方式获取您的应用,且在过去 30 天内未游玩该游戏,则此次 AddItem 调用也会失败。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
响应: -
response
-
success - 如果方法成功,为 true。 如果资产服务器返回 false,应将 error 设置为解释原因的字符串。
-
error - 描述为何此调用失败的字符串。 这条消息将记录在错误日志中,可在 Steamworks 站点的“经济体”选项卡下查看。
-
item_json - 新创建物品的物品详情的数组。 以包含物品具体属性的、经过编码的 JSON 格式返回。
-
replayed - 若为 true,表示给定 requestid 之前已处理过,当前响应基于最初执行的操作。 如果 requestid 未指定,则不会包含此字段。
响应示例:{
"response": {
"item_json":
"[{ \"accountid\":\"148618792083651397\",\"itemid\":\"17209346500926339\",\"Timestamp\":\"\",\"originalitemid\":\"17209346500926339\",\"itemdefid\":\"120\",\"appid\":480,\"position\":0,\"quantity\":1,\"transid\":\"\",\"state\":\"\",\"origin\":\"external\",\"price\":\"\",\"acquired\":\"20140912T195537Z\"}]"
}
}
调用示例:curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \
-d appid=480 \
-d steamid=292733980074050545 \
-d itemdefid[0]=4111 \
-d itemdefid[1]=4112 \
"http://api.steampowered.com/IInventoryService/AddItem/v1?key=xxxxxx"
AddPromoItem
POST https://partner.steam-api.com/IInventoryService/AddPromoItem/v1/
| 名称 | 类型 | 是否必需 | 描述 |
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | |
| itemdefid | uint64 | | |
| steamid | uint64 | ✔ | |
| notify | bool | | 应通知用户物品已加至 Steam 库存。 |
| requestid | uint64 | | 客户端可以为请求提供唯一标识符,用于最多执行一次。 当再次提交 requestid 时,不会导致操作再次执行;响应消息将为物品因最初的成功操作而具有的当前状态。 | |
向用户的库存添加促销物品。 如果在没有 itemdefid 参数的情况下调用,会为指定玩家检查并授予可用的促销物品。
注意: 此调用需要发行商 API 密钥以使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
ConsumeItem
POST https://partner.steam-api.com/IInventoryService/ConsumeItem/v1/
| 名称 | 类型 | 是否必需 | 描述 |
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | |
| itemid | uint64 | ✔ | 要消耗的物品 ID。 |
| quantity | string | ✔ | 要从指定物品堆栈中消耗的数量。 |
| steamid | uint64 | ✔ | |
| requestid | uint64 | ✔ | 客户端可以为请求提供唯一标识符,用于最多执行一次。 当再次提交 requestid 时,不会导致操作再次执行;响应消息将为物品因最初的成功操作而具有的当前状态。 |
将一个物品标记为已全部或部分被消耗。 此操作不可逆转。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
此调用有客户端 SDK 版本可用:
ISteamInventory::ConsumeItemExchangeItem
POST https://partner.steam-api.com/IInventoryService/ExchangeItem/v1/
| 名称 | 类型 | 是否必需 | 描述 |
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | 与物品相关联的应用程序的 ID。 |
| steamid | uint64 | ✔ | 拥有物品的玩家的 SteamID。 |
| materialsitemid | uint64 | ✔ | 玩家库存中,要转换为目标物品类型的物品的唯一 ID。 应为 materialsitemid[0] 、materialsitemid[1],以此类推。 |
| materialsquantity | uint32 | ✔ | 用于此配方的匹配物品的数量。 此数组必须与 materialsitemid 的长度相同。 |
| outputitemdefid | uint64 | ✔ | 要创建的物品的 ItemDef。 |
ExchangeItem 用于合成物品,也就是使用预先定义的配方转换物品。 转换成功将销毁合成配方所要求的一组物品,并将目标 itemdef 的一个新实例加至玩家库存。
目标物品定义必须在
exchange 属性中声明一个或多个合成配方。 配方声明了创建目标物品所需的物品的数量和类型。 如果 ExchangeItems 调用中提供的一组物品不满足任何配方要求,则调用失败,且不会对库存进行任何更改。
参见库存服务
架构文档,了解更多有关合成配方的信息。
合成操作会考虑到交易和市场限制。制作出的物品将继承用于制作的所有物品中最新的交易限制。
如果合成成功,将返回一个经过编码的 JSON 数据块,其中列出了因此次调用而发生的物品变动情况——即被消耗的物品以及新创建的物品。
注意:绝不能在您的游戏内分发您的 Steam API 密钥。 此 API 必须通过安全服务器调用,且绝不能由客户端直接使用。
此调用有客户端 SDK 版本可用:
ISteamInventory::ExchangeItems响应: -
response
-
item_json - 受此交换影响的所有物品的详情。 返回为含有物品具体属性的编码过的 JSON 字符串。 交换失败则返回空数组。
响应示例:{
"response": {
"item_json":
"[{ \"accountid\":\"292733980074050545\",\"itemid\":\"1503713096879725\",\"itemdefid\":\"4111\",\"state\":\"removed\" ...
}
}
调用示例:curl --request POST \
--header 'content-type: multipart/form-data' \
--form appid=30400 \
--form 'materialsitemid[0]=1510699974025744' \
--form 'materialsitemid[1]=1510699974025745' \
--form 'materialsitemid[2]=1510699974025746' \
--form 'materialsquantity[0]=1' \
--form 'materialsquantity[1]=1' \
--form 'materialsquantity[2]=5' \
--form steamid=292733980074050545 \
--form outputitemdefid=4111 \
https://api.steampowered.com/IInventoryService/ExchangeItem/v1?key=xxxxxxxxxx'
GetInventory
GET https://partner.steam-api.com/IInventoryService/GetInventory/v1/
| 名称 | 类型 | 是否必需 | 描述 |
|---|
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | 与物品相关联的应用程序的 ID。 |
| steamid | uint64 | ✔ | 您正在请求的库存的所有者的 64 位 Steam ID。 |
GetInventory 用于获取用户的库存。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
响应: -
response
-
success - 如果方法成功,为 true。 如果资产服务器返回 false,应将 error 设置为解释原因的字符串。
-
error - 描述为何此调用失败的字符串。 这条消息将记录在错误日志中,可在 Steamworks 站点的“经济体”选项卡下查看。
-
item_json - 库存的物品详情的数组。 数组中的每个元素都是一个字符串,内部包含经过编码的 JSON,用于描述该物品的实际属性。
参见
核心架构文档,了解有关输出值的具体描述。
响应示例:{
"response": {
"item_json":
"[{ \"accountid\":\"xxxxx\",\"itemid\":\"17212166272724458\",\"Timestamp\":\"2014-10-13T22:41:00.4928464Z\",\"originalitemid\":\"17212166272724458\",\"itemdefid\":\"120\",\"appid\":480,\"position\":0,\"quantity\":1,\"transid\":\"\",\"state\":\"\",\"origin\":\"external\",\"price\":\"\",\"acquired\":\"20141013T224100Z\"},
{ \"accountid\":\"xxxxx\",\"itemid\":\"17212166272732706\",\"Timestamp\":\"2014-10-13T22:42:50.1328464Z\",\"originalitemid\":\"17212166272732706\",\"itemdefid\":\"121\",\"appid\":480,\"position\":0,\"quantity\":1,\"transid\":\"\",\"state\":\"\",\"origin\":\"external\",\"price\":\"\",\"acquired\":\"20141013T224250Z\"}
]"
}}
调用示例:$fields = array(
'appid' > '480',
'itemlist[0]' > '120',
'itemorigin' > '',
'steamid' > 'xxxxx',
'key' > 'xxxx'
);
var_dump($fields);
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $host.'/IInventoryService/GetInventory/v1?appid=480&steamid=xxxxx&key=yyyyyy' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$data = curl_exec( $ch );
var_dump($data);
GetItemDefs
GET https://partner.steam-api.com/IInventoryService/GetItemDefs/v1/
| 名称 | 类型 | 是否必需 | 描述 |
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | 与物品相关联的应用程序的 ID。 |
| modifiedsince | string | ✔ | 用于获取自给定时间起对 itemdef 的更新。 格式为 yyyymmddThhmmssZ (如 20140808T010203Z)。 |
| itemdefids | uint64 | ✔ | 用于通过 itemdefid 获取特定 itemdef。 |
| workshopids | uint64 | ✔ | 用于通过 workshopid 获取特定 itemdef。 |
| cache_max_age_seconds | uint32 | | 允许返回指定秒数内的过期数据。 |
GetItemDefs 用于获取给定应用程序的 itemdef。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
响应: -
response
-
success - 如果方法成功,为 true。 如果资产服务器返回 false,应将 error 设置为解释原因的字符串。
-
error - 描述为何此调用失败的字符串。 这条消息将记录在错误日志中,可在 Steamworks 站点的“经济体”选项卡下查看。
-
itemdef_json - 一个包含新创建物品详细信息的数组。 数组中的每个元素都是一个字符串,内部包含经过编码的 JSON,用于描述该物品的实际属性。
响应示例:{ "response":
{ "itemdef_json":"[
{ \"appid\":\"480\",\"itemdefid\":\"10\",\"Timestamp\":\"2014-09-12T01:29:10.4628321Z\",\"modified\":\"20140808T010203Z\",\"type\":\"generator\",\"name\":\"Drop Generator/",/"bundle/":/"100x100;101x50;102x25;103x2;110x20;111x20;120x5;121x3/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Drop Generator\",\"market_hash_name\":\"Drop Generator\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"generator\",\"itemslot\":\"generator\"},
{ \"appid\":\"480\",\"itemdefid\":\"100\",\"Timestamp\":\"2014-09-12T01:28:44.4816369Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Plus ship decoration/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Plus ship decoration\",\"market_hash_name\":\"Plus ship decoration\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"decoration\",\"itemslot\":\"decoration\"},
{ \"appid\":\"480\",\"itemdefid\":\"101\",\"Timestamp\":\"2014-09-12T01:29:25.5198429Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Star ship decoration/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Star ship decoration\",\"market_hash_name\":\"Star ship decoration\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"decoration\",\"itemslot\":\"decoration\"},
{ \"appid\":\"480\",\"itemdefid\":\"102\",\"Timestamp\":\"2014-09-12T01:29:33.6544695Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Stripe ship decoration/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Stripe ship decoration\",\"market_hash_name\":\"Stripe ship decoration\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"decoration\",\"itemslot\":\"decoration\"},
{ \"appid\":\"480\",\"itemdefid\":\"103\",\"Timestamp\":\"2014-09-12T01:29:39.5676519Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Hat ship decoration/",/"bundle/":/"/",/"price/":/"1;USD99/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Hat ship decoration\",\"market_hash_name\":\"Hat ship decoration\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"decoration\",\"itemslot\":\"decoration\"},
{ \"appid\":\"480\",\"itemdefid\":\"110\",\"Timestamp\":\"2014-09-12T01:29:44.0715525Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Doublefire gun/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Doublefire gun\",\"market_hash_name\":\"Doublefire gun\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"weapon\",\"itemslot\":\"weapon\"},
{ \"appid\":\"480\",\"itemdefid\":\"111\",\"Timestamp\":\"2014-09-12T01:29:48.9635307Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Fastfire gun/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Fastfire gun\",\"market_hash_name\":\"Fastfire gun\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"weapon\",\"itemslot\":\"weapon\"},
{ \"appid\":\"480\",\"itemdefid\":\"120\",\"Timestamp\":\"2014-09-12T01:29:52.9633305Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Cloaking field/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Cloaking field\",\"market_hash_name\":\"Cloaking field\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"power\",\"itemslot\":\"power\"},
{ \"appid\":\"480\",\"itemdefid\":\"121\",\"Timestamp\":\"2014-09-12T01:30:00.0237423Z\",\"modified\":\"20140808T010203Z\",\"type\":\"item\",\"name\":\"Shield generator/",/"bundle/":/"/",/"price/":/"/",/"quantity/":0,/"description/":/"/",/"background_color/":/"3C352E/",/"icon_url/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"icon_url_large/":/"http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png/",/"market_name/":/"Shield generator\",\"market_hash_name\":\"Shield generator\",\"name_color\":\"7D6D00\",\"workshopid\":\"0\",\"flags\":1,\"game_type\":\"power\",\"itemslot\":\"power\"}
]" } }
调用示例:$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://api.steampowered.com/IInventoryService/GetItemDefs/v1?appid=480&modifiedsince=&itemdefids=&workshopids=&steamid=xxxx&key=xxxxx' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$data = curl_exec( $ch );
echo $data . '<br>';
$output = json_decode( $data );
$itemdef = json_decode( $output->response->itemdef_json );
var_dump( $itemdef );
GetPriceSheet
GET https://api.steampowered.com/IInventoryService/GetPriceSheet/v1/
| 名称 | 类型 | 是否必需 | 描述 |
|---|
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| ecurrency | int32 | ✔ | |
获得库存服务价格表。
Consolidate
POST https://partner.steam-api.com/IInventoryService/Consolidate/v1/
| 名称 | 类型 | 是否必需 | 描述 |
|---|
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | |
| steamid | uint64 | ✔ | |
| itemdefid | uint64 array | ✔ | |
| force | bool | | |
在用户库存中合并给定类型的物品。
每当物品被合并入一个堆栈时,生成的堆栈会继承其中限制最严的那件物品的市场和交易限制。 除非“force”设置为 true,否则合并操作将忽略正在受市场或交易限制的物品。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
GetQuantity
GET https://partner.steam-api.com/IInventoryService/GetQuantity/v1/
| 名称 | 类型 | 是否必需 | 描述 |
|---|
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | |
| steamid | uint64 | ✔ | |
| itemdefid | uint64[] | ✔ | 要查询的 itemdefid 列表, 应指定为一个参数系列,命名为“itemdefid[0]”、“itemdefid[1]”,以此类推。 |
| force | bool | | |
获得给定类型的可用物品的总数量。
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!
ModifyItems
POST https://partner.steam-api.com/IInventoryService/ModifyItems/v1/
| 名称 | 类型 | 是否必需 | 描述 |
|---|
| key | string | ✔ | 有经济体权限的 Steamworks Web API 发行商密钥。 |
| appid | uint32 | ✔ | |
| input_json | string | ✔ | |
| steamid | uint64 | ✔ | 物品所有者的 steamid。 必须在 input_json 参数中指定。 |
| timestamp | uint32 | ✔ | 请求的 Unix 时间戳。 如果物品在此请求时间后已被修改,则返回错误。 必须在 input_json 参数中指定。 |
| updates | message | ✔ | 被修改的物品和属性列表。 必须在 input_json 参数中指定。 |
updates 属性的结构:
| 名称 | 类型 | 是否必需 | 描述 |
| itemid | uint64 | ✔ | 被修改的物品的 ID。 |
| property_name | string | ✔ | 被添加/更新/移除的动态属性名称。 |
| property_value_string | string | | 要设置的属性的字符串值。 |
| property_value_bool | bool | | 要设置的属性的布尔值。 |
| property_value_int | int64 | | 要设置的属性的 64 位整数值。 |
| property_value_float | string | | 要设置的属性的 32 位浮点值。 |
| remove_property | bool | | 如果属性应被移除,设为 true。 |
为指定的用户修改物品的
动态属性。 此调用受到每个用户的速率限制,当前每次调用只能修改 100 件物品。
示例 input_json:
{
"steamid": "76561197970323416",
"timestamp": 1513274037,
"updates": [
{
"itemid": "1",
"property_name": "fx",
"property_value_string": "blue_flames"
},
{
"itemid": "1",
"property_name": "quality",
"property_value_string": "high"
},
{
"itemid": "1",
"property_name": "color",
"remove_property": true
}
]
}
调用示例:curl --request POST \
--header 'content-type: multipart/form-data' \
--form appid=30400 \
--form 'input_json={ "steamid" : "76561197970323416", "timestamp" : 1513274037, "updates" : [ { "itemid" : "1", "property_name" : "fx", "property_value_string" : "blue_flames" }, { "itemid" : "1", "property_name" : "quality", "property_value_string" : "high" }, { "itemid" : "1", "property_name" : "color", "remove_property" : true } ] }' \
https://api.steampowered.com/IInventoryService/ModifyItems/v1?key=xxxxxxxxxx'
注意: 此调用需要发行商 API 密钥才能使用此方法。 因此,此 API
必须通过安全服务器调用,且绝不能由客户端直接调用!