蒸汽平台api---dota2账号领用平台开发记录

笔记 / 364人浏览 / 0人评论

    最近沉迷dota2,经常找技术陪玩指导,后来在诸多巧合之下,帮一个小姐姐写一个陪玩用的dota2账号自助领取平台。

需求

    1、领用平台必须邀请注册,其他人无法访问

    2、账号自动更新昵称、天梯段位、在线状态

    3、他人领取后账号标记为使用中,不再出现,直到自动更新状态回空闲

    4、后台管理账号,可批量导入

    5、账号做国服、外服区分

    6、前台用户可以反馈账号异常状态

开发

    为了快速开发,直接用了fastadmin框架,加了一个邀请码注册的插件,这样第一点需求就完成了。

    自动更新需要调用steam web api来获取账号的在线状态,首先需要在steam官网获取一个api key,获取地址:https://steamcommunity.com/dev/apikey

    其中域名可以随意填写,没有用。

    然后通过

https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=APIKEY&steamids=STEAMID64

    即可得到指定用户的在线状态。

    但是,这里有三个问题:

        1、蒸汽平台账号在线状态无法获取

        2、无法批量获取steamid64

        3、无法获得dota2天梯段位

    第一个问题,我查阅了全网,没有找到蒸汽平台有提供官方api或者第三方api。最终,灵机一动,把steamapi的url改成了蒸汽平台的域名,居然一切正常,key也是使用的steam的,成功获取蒸汽平台用户在线状态。


https://api.steamchina.com/ISteamUser/GetPlayerSummaries/v2/?key=APIKEY&steamids=STEAMID64

    第二个问题和第三个问题,最终我找到了opendota这个第三方api,不需要key的情况下一分钟可以读取60次,频率足够。



https://api.opendota.com/api/players/player_id

    而且这里的id是dota2里的id,虽然通过计算也可以获取steamid64,但是这个接口会直接返回,于是问题二三一起解决。


    这里的rank_tier就是天梯段位,但是官方文档这里没有写清楚,最后翻阅文档在其他接口的地方有了说明。十位数代表段位,1-7分别是先锋-卫士-中军-统帅-传奇-万古-超凡,个位数代表星,33就是中军三星,64就是万古四星。

    其他的需求就比较简单了,相信会编程的你一定可以解决,下面放两张成品图。ps:我的审美只能做成这样的ui了。

遗留问题

    1、隐身状态通过接口获取的是离线,这个无法解决

    2、opendota的段位数据存在延迟,不是实时更新的

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我