AberSheeran
Aber Sheeran

开发易班的血泪史

起笔自
所属文集: 校园时光
共计 877 个字符
落笔于

老师让我基于易班开发一个体测成绩查询的功能。易班垃圾文档毁我青春,记下此文,以供后来者观之。(不断更新中)

机构号

机构号的ACCESS_TOKEN获取的文档有大问题。

它的文档如是说,post到http://mp.yiban.cn/cgibin/oauth/token?grant_type=client_credentials&appid=APPID&secret=APPSECRET, 然而经过我的实验,并不是如此。

应该把

{
  "grant_type": "client_credentials",
  "appid": "APPID",
  "secret": "APPSECRET"
}

作为Post方法的Body发到http://mp.yiban.cn/cgibin/oauth/token。当我成功的那一刻,我的心里只有五个字,五个字——易班操你妈。

机构号那个OAuth2都是假的,全都是假的。我打电话问客服,他们说是没有这个权限的。

OAuth2.0网页授权

经过我的不断实验,发现mp.yiban.cn里面的文档都是假的,要想OAuth2.0授权,只能去o.yiban.cn申请网站/应用等等来授权。

获取用户信息

领导要求,每个人都只能查到自己的成绩。那么问题来了,我该如何认证身份?

仔细的查看过易班的文档,只在校级权限里提到了,使用用户的access_token去请求https://openapi.yiban.cn/user/verify_me就能获取到学校认证信息。然而我此时连授权都没有搞出来,只好另寻它途。

在机构号后台我找到了一个有用的地方——信息查询。我能从这里直接用用户的OpenID拿到用户的所有信息。这样一来事情解决了。当用户对机构号发送消息的时候,机构号能够获取到发送者的OpenID,然后从后台抓取对应的个人信息,再从数据库里查询,就可以完成领导要求的任务。

如果你觉得本文值得,不妨赏杯茶
绕开校园网计费
暑假实习笔试的反思