steam机器人(一)

3,934 阅读4分钟

功能介绍

Steam作为知名厂商想必大家都不陌生,其市场功能允许玩家间自由买卖库存物品(以钱易物),同时玩家也可以与其余玩家交易库存物品(以物易物)。在此我们讨论后者,即如何自动地完成一个交易闭环。而要完成自动交易我们的机器人需要具备以下几个功能,大部分功能我都已经实现,小部分细节功能有待开发。

  • 自动登录steam账号
  • 检测当前是否有新的交易报价
  • 自动接受交易报价
  • 检测当前是否有需要移动端设备确认
  • 自动模拟移动端设备确认
  • 业务相关的不同细节需求

难点解析

以上列举的功能点是目前已完成的机器人中最重要的功能,想要完成以上的功能有几个无法绕开的技术难点,在此一一列举出来。在列举之前有几个注意事项:

  1. 该项目采用 Node.js 编码
  2. 如果对这几个技术点有自己的实现方式,自然可以采用自己的实现
  3. 在该系列文章阅读和代码的编写中需要有 看见外面的世界 的环境
  4. 我本身编码能力可能有限,一切都是以完成业务需求为主,如果你有更好的代码能力完全可以在阅读文章时按照自己的思路去写

了解了以上注意事项以后我们开始分析在完成一个机器人的过程中会遇上的问题:

  1. 登录:需要绑定手机令牌,如何让机器人本地计算该账号的令牌实现自动登录?
  2. 确认交易:如果当己方在一笔交易中存在自己的饰品交易给他人时,steam需要用户使用绑定了手机令牌的移动设备进行确认来完成交易,如何让机器人模拟绑定了手机令牌的移动设备进行交易确认?
  3. 接受交易报价:由于steamAPI中只有获取交易报价和拒绝、取消交易报价的接口,如何让机器人自动接受交易报价进入下一环节?

以上的三个问题是在做steam机器人中必不可少的三个步骤,解决了这三个问题后其他的steam机器人功能都能随着业务需求的变化而做出相应的调整,定制自己的steam机器人十分简单。

业务场景

在这次系列文章中我会以一个实际的业务场景来更加实际地带读者观看我是如何使用这个机器人。

该业务场景的描述如下:

开篇所说steam有自己的市场可以让玩家买卖自己的库存饰品,其实还存在着许多第三方steam饰品交易网站,我挑取了两个网站: c5game和网易buff。每个第三方平台(之后简称平台)都有商人在发布出售或者求购steam饰品的信息,而如果同一件饰品在A平台的出售价格低于了在B平台的求购价格,就使用机器人从A平台购入饰品并在B平台出售饰品获取价格差赚取利润。

ps: 以上业务场景只是一个场景而已,我没说这个业务场景能赚钱,我实现这个场景只是为了应用Steam机器人,实际上如果会了这个场景的编码你自然可以自定义自己的业务场景,比如监控饰品的价格批量扫货出货等,我只是提供编码的思路,这里以C5GAME和网易BUFF的Dota2饰品为例

而要实现该业务场景,出了开篇说的steam机器人的功能外还需要以下额外功能:

  • 爬虫:爬取平台的饰品信息
  • 平台的自动登录:使用puppeteer自动登录
  • 平台的自动买卖功能
  • 平台的自动收货发货功能

以上所说的几个额外功能可能不会做细节的编码处理毕竟该系列文章以steam机器人的编码为主,后续如果反响强烈,可以提供系列教程文章作为额外的内容。

结尾

本篇作为steam机器人系列的开章,简单讲述了一下实现steam机器人的难点和具体业务应用场景,那么下一篇文章:steam机器人(二)自动登录,择时与大家见面

补充

文章没写完,由于在写简历找工作可能会搁浅一段时间,但是代码已公开:github.com/LhrAlander/…