如何使用Steam API发送TradeOffer?

use*_*081 2 steam

Steam为我们提供了交易相关的API,但没有提供具体的地址示例:https://developer.valvesoftware.com/wiki/Steam_Web_API/IEconService#Input,原样第一次尝试,我不知道如何发送请求报价交易。

小智 7

Steam API 官方不支持发送交易报价。

您基本上需要使用一些参数调用 url https://steamcommunity.com/tradeoffer/new/send(它是一个 POST 请求)。

你需要知道两件事:SteamId(例如我的是:68364320)和合作伙伴的令牌(例如我的是:CzTCv8JM)。

标头

表单参数

  • 'sessionid':steamcommunity 会话的会话 ID
  • 'serverid':我真的不知道这意味着什么,只是将其设置为1
  • “合作伙伴”:SteamId
  • 'tradeoffermessage':附加到交易报价的消息
  • 'json_tradeoffer':报价的 JSON(链接)
  • “验证码”:留空
  • 'trade_offer_create_params': 如果好友列表中没有该伙伴则需要的参数,参见tradeofferparams.json
  • 'tradeofferid_countered':我猜你留空

现在是必要的 JSON:

tradeofferparams.json

{  
  "trade_offer_access_token":"{{tradeToken}}"
}
Run Code Online (Sandbox Code Playgroud)

itemAsset.json(需要json_tradeoffer.json

您可以通过请求用户库存+您的库存来获取这些 ID。

{  
  "appid":"appid",
  "contextid":"contextid",
  "amount":"1",
  "assetid":"assetid"
}
Run Code Online (Sandbox Code Playgroud)

json_tradeoffer.json

{  
  "newversion":true,
  "version":4,
  "me":{  
    "assets":[  

    ],
    "currency":[  

    ],
    "ready":false
  },
  "them":{  
    "assets":[  

    ],
    "currency":[  

    ],
    "ready":false
  }
}
Run Code Online (Sandbox Code Playgroud)

将货币留空。我猜它永远不会被使用,资产是一个数组 itemAsset.json

对于参考实现,请查找steam-awesome,其中列出了多个具有参考实现的存储库。最流行的可能是node-steam-tradeoffer-manager ,您可以在这段代码中找到发送功能。