Steamworks 文献库
GetContexts/v0001
此 API 返回针对指定用户的上下文。

调用方: 客服工具、交易 UI、库存 UI

HTTP 方法: GET

参数:

名称类型是否必需描述
keystring这是在合作伙伴网站上,您在自己应用的 Steam 经济体设置中提供的“资产服务器密钥”。
appiduint32与上下文相关联的应用程序的 32 位 App ID。
steamiduint64要为其返回上下文的用户的 64 位 Steam ID。
parentuint64要为其返回子级的父级上下文的 64 位 ID。 如果此参数为零,返回根级上下文。
categorystring如果是通过客服工具调用 ,类型为“history”或“assets”; 如果是通过交易 UI 或库存 UI 调用,类型为"trading"。 如果您有仅在某些类型中显示才有意义的上下文,这一项便有用。 也可能一些上下文命令只对某些类型有用,因此您可以按类型筛选发送的命令。 如果您不支持客服工具 API,便可以将所有类型按相同方式处理。
commandsbool如果上下文命令应包含在输出中,则为 true。
languagestring返回的字符串所使用语言的 ISO639-1 语言代码加 ISO 3166-1 alpha 2 国家代码。 如 en_US、de_DE、zh_CN、ko_KR 等。 默认为 en_US。

返回

此方法的输出应为 JSON 格式。

响应:
  • result
    • success - 如果方法成功,为 true。 如果资产服务器返回 false,应将 error 设置为解释原因的字符串 。
    • error - 描述为何此调用失败的字符串。 这条消息将记录入错误日志,可在 Steamworks 站点的“经济体”选项卡下查看。
    • contexts - 指定父级的一组子级上下文。
      • id - 此游戏内针对此 Steam ID 的上下文的 64 位 ID。 参见 Steam 经济体上下文 ID,了解更多信息。
      • name - 上下文名称, 将向客服显示。 如果 user_facing 为 true,则也向用户显示。
      • nested - 若为 true, 以此上下文为父级的 GetContexts 的后续调用将返回非空上下文列表。
      • asset_count - 用户在此上下文中拥有的资产与货币数量。 此数字向用户显示,任何 asset_count 为零的上下文通常会向用户隐藏。
      • user_facing - 若此项为 true,且上下文包含资产,便将在交易 UI 和 库存 UI 中显示。
      • commands - 在客服工具的“经济体”页面中为此上下文显示的一组命令。 参见后文,对命令了解更多。
    • alerts(可选) - 在交易 UI 中为此游戏显示的一组警报。 对于“trading”之外的类型,此节点将被忽略。
      • text - 在交易 UI 中为此游戏显示的本地化字符串。
      • color(可选) - 显示此警报的颜色的十六进制颜色编码。
    • trade_permissions(可选) - 此用户的交易权限级别。 值必须为 NONE、RECEIVEONLY、SENDONLY、SENDONLY_FULLINVENTORY 或 FULL 之一。
      权限为 NONE 的用户不能完成含有此游戏的资产的任何交易。 权限为 RECEIVEONLY 的用户能接受游戏的资产,但不能将他们的自有资产加入交易。 权限为 SENDONLY 的用户能将他们的自有资产加入交易,但并不能接收游戏的资产。 权限为 SENDONLY_FULLINVENTORY 的用户与 SENDONLY 的用户受到相同的限制,但是前者会收到通知,告知受限原因为此游戏的库存已满。 权限为 FULL 的用户可以将他们自有的任何标记为可交易的物品加入交易,或者接受来自交易对象的任何可交易物品。 对于“trading”之外的类型,此节点将被忽略。 默认为 FULL。

命令

各上下文可以包含允许客服操作用户资产的命令。 这些只显示在客服工具的“经济体”页面, 用于添加新物品、重新载入帐户、删除物品等操作。 当命令执行时,将调用 ContextCommand/v0001。 各命令需指明以下内容:
  • name - 命令名称, 显示在客服工具中,在 ContextCommand 中返回。
  • description - 描述命令的操作, 在确认对话框中向客服显示。
  • record_note - 若为 true,将提示客服该帐户的客服活动历史会留下记录。
    若命令不对用户信息进行任何更改(如从数据库中重新载入用户的命令),则返回 false。
    (默认为 true。)
  • asset_command(可选)- 若为 true,此命令将显示在上下文的各资产上,而非在上下文本身。
    如果有客服对一个上下文执行此命令,所得的 ContextCommand 的调用将添加附加参数 assetid

  • options - 在确认对话框中显示的一组选项。
    • name - 选项名称。
    • type - 选项的控制类型, 支持 checkboxdropdownnumerictype_picker
    • default - 此选项的默认值。 复选框选项为 bool,下拉菜单选项为值的名称。
    • supervisor_only - 如果只有部分有权限的客服能够访问此选项,为 true。 对于其他所有客服,将使用默认值。
    • values - dropdown 选项的一组可能值。 不用于其他类型的选项。
      • name - 向客服显示的此值的名称。
      • value - 如果在下拉菜单中选定,在 ContextCommand 中返回的值。

    • types - 在 type_picker 选项中显示的一组类型。 不用于其他类型的选项。
      • name - 类型名称。
      • value - 为此类型返回的值。
      • icon_url - 在选择控件中显示在此类型旁的图标的 URL。
      • tags - 在类型选择器中显示在名称下的一组标签。

输出示例

{ "result": { "success": true, "contexts": [ { "id": 2, "name": "Backpack", "nested": false, "commands": [ { "name": "Reload", "description": "Reload the user's information from the database.", "record_note": false }, { "name": "Delete All", "description": "Delete all of the user's items.", "options": [ { "name": "Delete Purchased Items", "type": "checkbox", "default": false } ] }, { "name": "Add Item", "description": "Adds an item for the user. Please don't set Quality, Particle Effect, or Level unless you know what you're doing.", "options": [ { "name": "Quality", "type": "dropdown", "default": "unique", "values": [ { "name": "Any", "value": "Any" }, { "name": "Normal", "value": "normal" }, { "name": "Genuine", "value": "rarity1" }, { "name": "Vintage", "value": "vintage" }, { "name": "Unusual", "value": "rarity4" } ] }, { "name": "Particle Effect", "type": "dropdown", "default": "none", "values": [ { "name": "None", "value": 0 }, { "name": "burningplayer_red", "value": 1 }, { "name": "burningplayer_flyingbits", "value": 2 } ] }, { "name": "Level", "type": "numeric", "default": 0 }, { "name": "Not Tradable", "type": "checkbox", "default": false }, { "name": "Not Usable In Crafting", "type": "checkbox", "default": false }, { "name": "Item Type", "type": "type_picker", "types": [ { "value": "The Kritzkrieg", "icon_url": "http://media.steampowered.com/apps/440/icons/c_overhealer.b5ed539b534216652b45694e19c78d2aaebcfe5e.png", "name": "Kritzkrieg", "tags": [ "Slot: secondary", "Used By: Medic" ] }, { "value": "The Blutsauger", "icon_url": "http://media.steampowered.com/apps/440/icons/c_leechgun.198c5a7943a16f08b5227f2e84d165c153ed0223.png", "name": "Blutsauger", "tags": [ "Slot: primary", "Used By: Medic" ] } ] } ] }, { "name": "Delete Item", "asset_command": true, "description": "Delete an item" } ] , "asset_count": 180, "user_facing": true }, { "id": 3, "name": "Recipes", "nested": false, "asset_count": 0, "user_facing": false } ] , "alerts": [ ] , "trade_permissions": "FULL" } }