写在前面:自己陆陆续续打GO也有快6年了,期间见证了蝴蝶刀从700涨到1W6的过程,奈何本人是捏不住的FW(QAQ),一直小赚大赔,直到2021年12月,某有品平台的出现。租赁平台提供了一个很不错的年化收益率,加上租赁时间和冷却cd导致的流通性下降,使我能有能力捏住饰品,但是当时一直有个问题困扰着我:大家都知道小件收益率高,但是收益率高的同时伴随着大量的上架操作,同时如果饰品租不出去还要去看价格然后改价,如果是十几件还好,但是如果上百件饰品要这么操作,就太过于费劲了。

最终,我决定做一个自动化的上架工具来帮助我管理饰品的价格设置问题,理想情况下自己只需要进行发货即可。

PS:如果你只想使用,那么直接跳到(三)实战篇即可

AutoUU--悠悠有品租赁自动上架的开源轻量化工具--实战篇、(三)_worldofgoo9的博客-CSDN博客

一、API篇

想要进行自动化的上架,首先要知道如何和服务器进行通信和操作。

1、用户登录

一般来说,客户端需要存储认证过的Cookie作为登录凭证,从而对自己的信息进行操作,通过抓包,某有品的登录请求如下:

其中附带了一个JSON格式的Body:

其中关键的字段为:

TenDay:1代表10天免登录。

UserName,PassPwd:看名字就知道是用户名密码。

返回的信息为登录的用户名,Cookie信息。

这里返回数据中的Data[‘Token’]是最重要的,他代表了你的登录用户。拿到Token后,就可以得到授权对库存进行上架操作了。

2、库存信息获取

得到了Cookie后,就可以来获取自己库存的信息。请求头如下:

查询库存的API如下,其中Authorization字段是你的用户Token,格式为Bearer {Token}。

请求字段为:

这里按照请求的页数(PageIndex)进行遍历请求即可获取全部库存信息。为了节约时间以及降低服务器压力,可以只考虑获取库存前几页的饰品信息,传家宝大多在后面。

获取到的物品信息如下:

其中Data[‘ItemsInfos’]是一个列表,存储了对应页面中的物品信息。

对于每一个物品信息,比较重要的字段如下:

AssetInfo中的Abrade字段:代表了物品的磨损值

OnLease,OnSale字段:代表了是否上架,一般来说不对已经在架的物品进行操作。

SteamAssetID:在steam中的物品号

TemplateInfo中的Id字段:代表了该物品在某有品平台的ID,用户后续查询价格使用。

3、市场价格获取

在上架之前,一般需要根据当前的市场价格来决定上架的价格,

这里以对“爪子刀(★) | 伽玛多普勒 (崭新出厂)”的请求信息为例,如下:

其中POST请求附带了一个Body:

这里templateId即为上一节中TemplateInfo中的Id字段,userId在登录的返回请求中。其他字段代表了“查询租赁市场,以短租价格从小到大排序”。

同理,我们也可以获取到长租的信息,只需要将请求Body中的listSortType更改为2即可!

返回信息如下:

其中Data字段中的CommodityList是一个列表,装着市场饰品的信息,往往我们只需要用到第一个饰品的信息即可(市场底价)。

其中基本只需要关注LeaseUnitPrice和LongLeaseUnitPrice两个字段即可,这分别代表了该饰品短租和长租的定价。有了这些信息,可以为之后的上架定价提供依据。

4、上架

某品的上架程序是分为两步的:

<1>首先向服务器请求一个App Key,用于使能本次交易。

<2>正式提交上架申请,提交请求里包括上面请求的Key,返回上架操作结果。

具体来说,在第一步中会发送以下请求:

其中红框标注的位置是用户的Id,返回的信息如下:

其中data中的key字段即为申请的App Key。

上架请求如下:

POST请求附带了一个JSON格式的请求体:

其中,ItemInfos是一个字典的列表,每一个字典对应一个物品,其中关键的字段为:

LeaseMaxDays:最大租赁时长(天),

LeaseDeposit:租赁押金,

LeaseUnitPrice和LongLeaseUnitPrice分别代表短租、长租的租金。

assetId代表了物品的steamId,

charge和price一般和LeaseDeposit设置为一样的,其中应该有代表售价的,但还没细究。

此外,请求中的key为上一步中获取到的App Key。

返回成果的结果。

到这里,以上便是上架流程所需要的API了,在这些的技术上就可以构造自动化上架程序了!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐