【问题标题】:Accept Trade Offer from Steam using Web-API & Java使用 Web-API 和 Java 接受来自 Steam 的交易报价
【发布时间】:2015-08-30 19:28:52
【问题描述】:

我有一个 Java Steam 贸易机器人,它读取来自 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 密钥来接受交易报价?

【问题讨论】:

    标签: java steam-web-api


    【解决方案1】:

    您阅读过 Steam API 文档吗?没有交易接受功能,所以我假设你不能通过 API 接受交易。 您的选择是检查 SteamBot(尽管它是用 C# 编写)的交易功能,并考虑对 Steam 站点的直接 http 请求(我相信使用适当的 Steam 身份验证)。我自己目前正在编写一个机器人,而现在阻止我的唯一一件事是接受交易。

    【讨论】:

    • 是的,我过去读过这些文档。但是,我相信另一种解决方法是让机器人发送报价,尽管这也没有记录。
    • 好吧,botting 违反了 Steam ToS(至少是市场部分),所以我非常怀疑 API 是否允许发送或接受交易。加上 API 主要用于扩展和东西,允许以这种方式接受交易是不安全的。
    猜你喜欢
    • 2015-04-04
    • 1970-01-01
    • 2021-09-03
    • 2016-01-07
    • 1970-01-01
    • 2016-01-18
    • 2015-06-01
    • 2022-12-09
    • 1970-01-01
    相关资源
    最近更新 更多