使用Web-API接受来自Steam的交易优惠& Java的

时间:2015-08-30 19:28:53

标签: java steam-web-api

我有一个Java Steam Trade Bot,可以读取Steam的待处理交易优惠,并根据要求拒绝这些优惠。我正在使用官方Web API(使用http://steamcommunity.com/dev/apikey中的API密钥)将请求传达给Steam。变量trade来自我自己的API接口(我已调试并适用于拒绝优惠)。

SteamPlug.steamRequest(method, query);只是一个基本的HTTP请求者:

public static String steamRequest(String method, String query) {
    try {
        URL obj = new URL(query);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        con.setRequestMethod(method);

        int responseCode = con.getResponseCode();

        if (responseCode != 200 && responseCode != 201) {
            return "ERR" + responseCode;
        }

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        return response.toString();
    } catch (MalformedURLException | ProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        // Ignored
    }

    return null;
}

这就是它拒绝交易的方式:

SteamPlug.steamRequest(
          "POST",
          "http://api.steampowered.com/IEconService/DeclineTradeOffer/v0001/?key=" 
          + SteamPlug.API_KEY + "&tradeofferid=" + trade.getTradeOfferId()
);

我想做的是接受交易。我试过这个:

SteamPlug.steamRequest(
          "POST",
          "https://steamcommunity.com/tradeoffer/" + trade.getTradeOfferId() + "/accept?key="
          + SteamPlug.API_KEY
);

但我收到411 Length Required回复。

我相信我可以通过使用Steam会话身份验证来接受优惠,但是是否可以仅使用用户的Web-API密钥接受优惠?

1 个答案:

答案 0 :(得分:1)

您是否阅读过蒸汽API文档?没有交易接受功能,所以我假设您不能通过API接受交易。 您可以选择查看SteamBot(尽管它是用C#编写的)交易功能,并考虑直接向蒸汽站点发送http请求(我相信使用适当的蒸汽认证)。我自己当前正在写一个机器人,而现在就让我停止的一件事 - 接受交易。