注意:本文记述的方法现在已经不再适用了!
前言
大家好,我是 Arcaea 中文维基的某魏,目前在与 Aw.0000 聚聚一起维护 BotArcAPI ,即通过违反 ToS 协议的逆向、抓包游戏所实现,为各大 bot 查分功能提供数据的唯一接口。随着 616 对游戏安全措施的不断提升,BotArcAPI 受到了很大限制,包括经常性的查询过慢,无法查询以及每次版本更新后的完全停用。
为了缓解这些问题,也为了寻求正当的数据获取方式,我们与 616 进行了多次邮件沟通,最后得到了一个官方开放接口 —— Arcaea Limited API。虽然限制非常多,但它确实能一定程度解决玩家查分的需求。本文将会介绍如何这个 API 的相关信息和申请方法。
省流版本:1.蚊子腿 QPS 极低 2.不允许用游戏素材 3.邮件申请回复巨慢
邮箱地址是 contact@lowiro.com
(616 的邮件太长不在这里贴出,有需要可以去我的博客看)
数据
API 提供了三个接口,均是通过好友码查询,分别是:
用户基本信息(用户名,PTT,搭档以及最近一次游玩的分数)
用户 b30 成绩
用户特定歌曲难度的最高分
以上接口得到的数据比起逆向的都有缩减,但对于现在 bot 的查分功能足够了。
规约
使用 API 需要遵守的规约,概括如下:
API 仅是临时措施,可能随时会停用,比如 616 推出官方查分手段。616 保证会至少维护到 2022 年 2 月 1 日 (3月9号正好五周年,我个人猜测这段时间里可能要出4.0)
不能在项目里使用除了角色图标外的任何官方图片素材,包括曲绘、角色立绘等。
不能滥用(比如批量爬信息),不然会被撤权限以及相关账号封号。没有详细文档(但 Swagger 平台生成的文档够看了)。不允许分享 token 和文档给第三方。
项目需在明显位置声明: "This service utilizes API functionality provided by and with permission from lowiro. It is not affiliated with or endorsed by lowiro."
额度限制
API 有使用额度限制,且不能要求提升。据现在的情况,限制固定不随项目规模改变,分为以下三种:
每日请求数限额 2000/d
分钟请求数限额 120/min
每日用户限额 100 个账户
显然第三条是大头,且虽然写的是每日,实际上并不是在每天的固定时间刷新,而是用满之后需要等 24 小时的 CD 才能继续使用。同时在因为达到账户数限额而停用后,即使其他两条限额都没满,之前占用额度的一百个账户也不能查了...接口只会返回分钟限额的余量,所以开发者要自己记录其他已用额度并作控制。
申请方法
目前只能通过邮件(contact@lowiro.com)与 616 沟通,所以需要写一封英文邮件来申请权限(日语没试过)。邮件里除了说明目的为申请 API,还需要单独写明:"I acknowledge and agree to terms 1-7 of the Arcaea Limited API and would like to request access",并提供下面七条信息:
The name of your project项目名,一般就填 bot 名字
Your desired username开发者名,大小写字母和数字不超 20 字符
Your project's primary contact email address主联系邮箱,用于 616 回访。如果与发申请的邮箱不一样的话,需要收一个验证码并在 72 小时内用申请邮箱发回
Any examples of past API-related projects that you've worked on prior to this有没有参加过类似 API 的开发,最好加开源链接给 616 用于参考。没有的话要写明
Your intended usage of the API想如何使用 API,需要写明需要哪些数据,也就上面提到的那些了
The goal / plan of this project项目目的,那一般就是查分了,要写清楚最终的呈现形式与平台
The primary way of accessing your project如何使用项目,有链接贴链接没链接贴 bot QQ 号
即使现在没有实际的查分项目,你也可以发邮件说有计划开发而申请(画大饼)。邮件发出去后就是漫长的等待,大概需要 7-14 天不等的时候,然后就能见证收到的是 token 还是 Unfortunately 了...
这里提供我的申请邮件作为参考,请不要直接照抄(

工地英语邮件
结尾
其实我们现在也没搞清楚 616 到底在想什么,也不知道 616 愿不愿意大范围公开这个 API,有可能我这篇文章发出来第二天 616 看到了就给我权限撤了并不再给别人发了。
至少比起以前,能有这 API 说明 616 还是拿出了诚意。只希望将来能有更加方便玩家的查分途径吧,最好是好使的官方服务...