第三方账号登录教育号接口
使用场景: 第三方平台登录教育号的应用。
请求方式: GET(HTTPS)
请求地址: https://sso.qq.com/pass/third_account_login
请求方法: [ GET ]
请求参数:
参数 | 必须 | 说明 |
---|---|---|
code | 是 | 第三方平台OAuth登录的Code |
appid | 是 | 第三方为教育号分配的应用id |
account_source | 是 | 第三方账号源,由教育号提供 |
请求示例 https://sso.qq.com/pass/third_account_login?account_source=2c69c7aa42f001&appid=10000&code=xxxxxx
code换取access_token
接口说明:此接口返回的 access_token 用于完成登录态下发,查询用户信息,与 suite_access_token 和 corp_access_token 不同
请求地址: https://sso.qq.com/open/access_token
请求方法: [ GET, POST ]
请求参数:
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 填教育号平台 SuiteId |
secret | 是 | 填教育号平台 SuiteKey |
code | 是 | 填应用跳转地址中获取的 code |
grant_type | 是 | 填 "authorization_code" 字符串 |
请求示例:
https://sso.qq.com/open/access_token?appid=xxxx&secret=265b2b7&code=581879d8ac77948&redirect_uri=https://xxx.html&grant_type=authorization_code
返回结果:
{
"code": 0,
"msg": "请求成功",
"requestid": "463b215ea1d466a8",
"data": {
"access_token": "a51kiS9ooVgQRfhVqLCrmTsj5kFGu1JZnKwyctgbQB.QxUJnHSmGLclVKyhgijlhXfXfdjELsfZ",
"expires_in": 7200,
"refresh_token": "38NpHr4Ax51wUedoST3HWKMb5BJp88pomd7Wz2p772P2SWJvD1geWKxjzC1dF816rsyBXgeJVG8Hnb6oaAK3yYTTDuLiztSwcf9vUUh.SmqTWjhtrOftpmLfNaKNsEjvFnvIvwMcliiYlBAdEEFEOpssxGrmzJRlqhPSVMBc"
}
}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
code | 是 | 返回码 |
msg | 是 | 返回码的文本描述内容 |
requestid | 是 | 请求 id |
data | 是 | |
access_token | 是 | access_token |
expires_in | 是 | 过期时间, 默认 7200秒 |
refresh_token | 是 | refresh_token,用于更新 access_token,过期时间 30 天 |
更新access_token
请求地址: https://sso.qq.com/open/refresh_token
请求方法: [ GET, POST ]
请求参数:
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 填教育号平台应用id |
refresh_token | 是 | 填上一步获取到的refresh_token参数 |
grant_type | 是 | 填 "refresh_token" 字符串 |
请求示例:
https://sso.qq.com/open/refresh_token?appid=xxxx&refresh_token=581879d8ac77948&grant_type=refresh_token
返回结果:
{
"code": 0,
"msg": "请求成功",
"requestid": "102d02d392911261",
"data": {
"access_token": "G3eBvGPjgqJPf2hvszeyYgxUbVhVZh4E79.rujydCcdhtTZpKnkyrOTfrlNBhfJMElE",
"expires_in": 7200,
"refresh_token": "37QZ1UiTUsaxP7u6pq41CfcQRDg8gqcmexSyvo243HMjwCejASNZjqV8gfTMgkqpkRtXfhaMqfouUXnvD4EWtMW3noAp.kyshHAmwrjIrcDMjcuiLhLiSWdbksFxKuwPPAmbCxkIKGziQvmIXhPIUAHwJHMHf"
}
}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
code | 是 | 返回码 |
msg | 是 | 返回码的文本描述内容 |
requestid | 是 | 请求 id |
data | 是 | |
access_token | 是 | access_token |
expires_in | 是 | 过期时间, 默认7200秒 |
refresh_token | 是 | refresh_token,用于更新 access_token,过期时间 30 天 |
查询用户信息
使用场景: 用户登录后,使用此接口可以查询到用户的信息,用于角色判定、资料展示。
是否需额外授权: 否
请求方式: [GET, POST](HTTPS)
请求地址: https://oapi.epaas.qq.com/account/userinfo?access_token=ACCESS_TOKEN
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证,使用用户态access_token,由/open/access_token |
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"user_name": "用户1",
"appid": "10000",
"role_id": 12,
"sub_role_id": 1,
"userid": "30000000",
"corpid": 80000,
"avatar": "https://smart20-1253364609.cos.ap-beijing.myqcloud.com/2021/202106/20210616/EWaAeXFz46b_yY7QwG.png",
"corp_type": 4,
"corp_name": "测试学校",
"child_id": "20000000"
}
参数说明:
参数 | 说明 |
---|---|
errcode | 返回码 |
errmsg | 对返回码的文本描述内容 |
user_name | 用户姓名昵称 |
appid | 教育号平台应用id |
role_id | 角色id, 参考角色类型 |
sub_role_id | 登录账号的子角色ID:120001-学校管理员,20001-行政单位管理员,0-其他 |
userid | 用户id,在机构内唯一 |
corpid | 教育号平台 CorpId |
avatar | 用户头像链接 |
corp_type | 当前机构类型, 0:DEFAULT; 1:代理商; 2:上级单位; 4:学校; 5:超管; |
corp_name | 机构名称 |
child_id | 孩子的用户id(家长身份登录时返回) |
第三方平台需要实现的接口
获取access_token
使用场景: 由教育号调用
请求地址: https://{第三方后台接口域名}/access_token
请求方法: [ POST ]
请求参数:
{
"appid": "20000",
"secret": "xxxx",
"code": "xxxx",
"grant_type": "authorization_code"
}
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 平台为应用分配的应用id |
secret | 是 | 平台为应用分配的秘钥 |
code | 是 | 应用跳转地址中获取的 code |
grant_type | 是 | 填 "authorization_code" 字符串 |
返回结果:
{
"code": 0,
"msg": "请求成功",
"data": {
"access_token": "a51kiS9ooVgQRfhVqLCrmTsj5kFGu1JZnKwyctgbQB.QxUJnHSmGLclVKyhgijlhXfXfdjELsfZ",
"expires_in": 7200,
"refresh_token": "38NpHr4Ax51wUedoST3HWKMb5BJp88pomd7Wz2p772P2SWJvD1geWKxjzC1dF816rsyBXgeJVG8Hnb6oaAK3yYTTDuLiztSwcf9vUUh.SmqTWjhtrOftpmLfNaKNsEjvFnvIvwMcliiYlBAdEEFEOpssxGrmzJRlqhPSVMBc"
}
}
参数说明
参数 | 必须 | 说明 |
---|---|---|
msg | 是 | 返回码的文本描述内容 |
data.access_token | 是 | access_token |
data.expires_in | 是 | 过期时间 |
data.refresh_token | 否 | refresh_token,用于更新 access_token |
获取用户信息
请求地址: https://{第三方后台接口域名}/userinfo?access_token={access_token}
请求方法: [ GET ]
请求参数:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 接口调用凭证 |
返回结果:
{
"code": 0,
"msg": "请求成功",
"data": {
"openid": "ed12312",
"org_code": "123456",
"org_name": "测试学校",
"role_id": 12,
"sub_role_id": 1,
"name": "叶小宏",
"user_number": "2009060406",
"gender": "1",
"mobile": "15900110011",
"student_info": {
"class_path": "/2021级/一班",
"class_code": "/12434/2343"
}
}
}
参数 | 必须 | 说明 |
---|---|---|
code | 是 | 返回码。0为成功,非0则为失败 |
msg | 是 | 返回码的文本描述内容 |
data.openid | 是 | 第三方帐号唯一id |
data.org_code | 是 | 学校编码 |
data.org_name | 是 | 学校名称 |
data.role_id | 是 | 登录账号的角色id, 参考角色类型 |
data.sub_role_id | 是 | 登录账号的子角色ID:120001-学校管理员,20001-行政单位管理员,0-其他 |
data.name | 是 | 用户的真实姓名 |
data.user_number | 是 | 教工号或者学号 |
data.gender | 否 | 性别。用户性别,1-男,2-女 |
data.mobile | 否 | 手机号码。教师以及高校学生必返 |
data.student_info.class_path | 是 | 学生年级、班级,当登录身份为学生身份时必返。注意年级要带上年份,否则只能当自定义年级 |
data.student_info.class_code | 是 | 学生年级、班级code,当登录身份为学生身份时必返 |