对接服务端API


  1. 对接应用ticket回调,获取并缓存应用凭证(suite_access_token)(必选)-> 应用凭证管理
  2. 对接应用安装授权流程,获取并缓存机构凭证(access_token)(可选)-> 应用安装授权
  3. 对接登录授权流程,用户登录后获取并缓存用户凭证(access_token)(必选)-> 用户登录验证
  4. 对接通讯录变更事件回调通知流程,拉取并缓存用户、组织架构数据(可选)-> 通讯录变更事件
  5. 对接消息推送流程,向机构成员推送企业微信、微信消息(可选)-> 消息通知
  6. 对接消息中心,作为消息通道,接收来自第三方应用的消息,并向用户展示(可选)-> 消息通道

对接前端API


参考:登录接入方式

典型场景


仅登录

仅为了校验用户的身份,以及只会用到登录用户的相关信息,不需要以机构身份来获取机构的其它数据。

  • 页面链接支持code参数,获取到code后,使用/open/access_token接口获取用户的access_token,缓存起来。
  • 使用/account/userinfo获取登录用户的信息,返回内容有几个关键信息:
    • corpid: 登录的机构ID,可以知道用户是哪个机构的。
    • userid: 登录的用户ID,可以知道具体是哪个用户,用来做后续用户数据的存取。
    • role_id: 登录的角色,可以知道 用户的角色,用来判断允不允许使用本应用。比如应用是给教师提供服务的,那只能允许role_id为教师的登录,其余角色需要引导页提示不支持。
  • 一般需要会给用户派发应用自己的token,有效期与上述access_token一致即可, 避免将access_token暴露给用户。

应用(不缓存数据)

给教师提供功能的应用,能够查看班级学生、家长信息。 给学生提供功能的应用,能够查看班级、同学、家长信息。 给家长提供功能的应用,能够查看孩子信息。 不缓存用户及组织架构数据,每次都实时从平台侧拉取。

  • 搭建回调服务,回调服务需要支持:
    • 接收Ticket,将Ticket保存起来;使用/service/get_suite_token换取应用的access_token,缓存起来。
    • 接收应用授权通知,将预授权码缓存起来;使用/service/get_permanent_code换取机构的永久授权码,保存起来;使用/service/get_corp_token换取机构的access_token,缓存起来。
    • 接收应用变更通知,拉取最新的授权状态(比如应用被停用了),停用状态的应用应该不允许用户登录。
    • 接收应用取消授权通知,删除授权码及应用存储的机构相关的数据。
    • 其余通知,直接返回success即可。
  • 页面链接支持code参数,获取到code后,使用/open/access_token接口获取用户的access_token,缓存起来。
  • 使用/account/userinfo获取登录用户的信息,返回内容有几个关键信息:
    • corpid: 登录的机构ID,可以知道用户是哪个机构的。
    • userid: 登录的用户ID,可以知道具体是哪个用户,用来做后续用户数据的存取。
    • role_id: 登录的角色,可以知道用户的角色,用来判断允不允许使用本应用或者是展示什么样的内容。
  • 一般需要会给用户派发应用自己的token,有效期与上述access_token一致即可, 避免将access_token暴露给用户。
  • 对不同的用户展示不同的内容:

应用(缓存数据)

给教师提供功能的应用,能够查看班级学生、家长信息。 给学生提供功能的应用,能够查看班级、同学、家长信息。 给家长提供功能的应用,能够查看孩子信息。 缓存用户及组织架构数据,使用时直接使用本地数据。

  • 搭建回调服务,回调服务需要支持:
    • 接收Ticket,将Ticket保存起来;使用/service/get_suite_token换取应用的access_token,缓存起来。
    • 接收应用授权通知,将预授权码缓存起来;使用/service/get_permanent_code换取机构的永久授权码,保存起来;使用/service/get_corp_token换取机构的access_token,缓存起来;返回success后,需要做本地数据初始化:
    • 接收应用变更通知,拉取最新的授权状态(比如应用被停用了),停用状态的应用应该不允许用户登录。
    • 接收应用取消授权通知,删除授权码及应用存储的机构相关的数据。
    • 接收内部通讯录新增成员和更新成员通知,使用/user/get查询教职工并更新本地数据,注意兼容重复通知的情况,对本地不存在的,应执行新增操作,对平台不存在的,应执行删除操作;使用/teacher/class/list查询教师的任课班级信息,更新地本数据。
    • 接收内部通讯录删除成员通知,删除本地教职工数据。
    • 接收内部通讯录新增部门通知,使用/department/list查询新部门并更新本地数据。
    • 接收内部通讯录更新部门通知,使用/common/department/get查询部门最新数据并更新本地数据。
    • 接收内部通讯录删除部门通知,删除本地部门数据。
    • 接收家校通讯录新增学生和更新学生通知,使用/school/user/get查询学生信息并更新本地数据,注意兼容重复通知的情况,对本地不存在的,应执行新增操作,对平台不存在的,应执行删除操作。
    • 接收家校通讯录删除学生通知,删除本地学生数据。
    • 接收家校通讯录新增家长和更新家长通知,使用/school/user/get查询家长信息并更新本地数据,注意兼容重复通知的情况,对本地不存在的,应执行新增操作,对平台不存在的,应执行删除操作。
    • 接收家校通讯录删除家长通知,删除本地家长数据。
    • 接收家校通讯录新增部门通知,使用/school/department/list查询新部门并更新本地数据。
    • 接收家校通讯录更新部门通知,使用/common/department/get查询部门最新数据并更新本地数据。
    • 接收家校通讯录删除部门通知,删除本地部门数据。
  • 页面链接支持code参数,获取到code后,使用/open/access_token接口获取用户的access_token,缓存起来。
  • 使用/account/userinfo获取登录用户的信息,返回内容有几个关键信息:
    • corpid: 登录的机构ID,可以知道用户是哪个机构的。
    • userid: 登录的用户ID,可以知道具体是哪个用户,用来做后续用户数据的存取。
    • role_id: 登录的角色,可以知道用户的角色,用来判断允不允许使用本应用或者是展示什么样的内容。
  • 一般需要会给用户派发应用自己的token,有效期与上述access_token一致即可, 避免将access_token暴露给用户。
  • 对不同的用户展示不同的内容:
    • 教师
      • 查询本地的教师任课班级列表。
      • 查询本地的班级下的学生列表和家长列表。
    • 学生
      • 查询本地的学生的班级信息和家长信息。
      • 查询本地的班级的详细信息。
      • 查询本地的班级下的学生列表。
    • 家长
      • 查询本地的家长的小孩信息。

数据源

在项目侧作为数据源的应用,管理组织架构数据和人员数据,同步到教育号。数据期望以应用侧的为准。 数据源应用需要申请对应数据的写权限,才能调用相应接口进行数据的写操作。 建议是提供oauth2的协议及通知功能,由平台的适配层来做数据转换和写入。 以下是不使用平台的适配层,直接来同步数据的实现,同步时需要判断数据是否已存在,一般需要做字段映射存储。

教师类应用

提供给教师使用的应用。

  • 根据应用是否缓存数据,参考上边的应用(不缓存数据)应用(缓存数据)做搭建回调服务以及处理登录逻辑。
  • 判断用户角色
    • 使用/account/userinfo获取登录用户的信息
      • 返回的role_id=12表示教师(教育局的教职工则为2),因此仅有此身份才允许使用应用功能,其余角色应该做相应的提示。
      • 返回的corpid和userid表示哪个学校和哪个用户,可用于查询应用内部产生的数据,一般来说,应用内部产生的数据也应该以这两个ID作为Key来存储。
    • 可以使用/user/get查询教师的详细信息。
    • 有时候需要知道用户是否是学校管理员,可以使用/common/teacher/get_group来获取教师的其余身份,如果身份里有1或3,则表示有学校管理员的身份。
    • 一般教师只对负责的班级有权限
© 1998 - 2021 Tencent Inc. All Rights Reserved all right reserved,powered by ePaaS.更新时间: 2025-01-09 17:17:38

results matching ""

    No results matching ""

    results matching ""

      No results matching ""