钉钉开发之专有钉钉
1.前言
根据开发文档和相关咨询,钉钉>专有钉钉>浙政钉。浙政钉的申请需要通过业主单位进行,这个要是想接入浙政钉的时候,可以询问业主单位,让业主单位进行申请。专有钉钉的申请,可以企业自行注册。
(1)注册
打开ISV注册,填写 手机号、企业全称、企业统一社会信用代码,即可以注册。如果已经注册过,或者说是忘记自己注册了,那需要到浙政钉开发群里面,去找群主解决这个问题,他会给你处理的。我遇到的问题就是,账号冻结了,需要进行解冻,然后就是需要修改了短信接收手机号,账号用户名是无法修改的。
(2)解冻
申请解冻
(3)登陆
注册之后就可以进行登陆了,打开 登陆 页面就可以,输入用户名密码就可以登陆了。
2.扫码登录
要想接入浙政钉,需要先测试专有钉钉的扫码登录。
(1)创建扫码登录应用,获取应用的 appkey/appSecret
(2)点击应用配置,配置回调地址
这里我有点疑问的就是,这个应用的标志,是自己随便填呢,还是要填已经有的应用,比如填写 H5&小程序 里面创建的应用。经过我的尝试,我发现这个扫码应用的标志可以自己随便填,可以和 H5 应用标志的前面的一样,反正都是会在后面添加随机数的。
(3)构造请求页面和地址,有两种方式,一种是独立页面的方式,一种是使用iframe的方式。
使用iframe的方式,需要构造请求地址
1 | <iframe src="https://login.dg-work.cn/oauth2/auth.htm?response_type=code&client_id=应用标识&redirect_uri=回调地址&scope=get_user_info&authType=QRCODE&embedMode=true" class="zwdd-qrcode" frameborder="no"></iframe> |
然后监听页面回调。
1 | <script type="application/javascript"> |
(4)获取临时 code
通过iframe方式嵌入的话,专有钉钉用户扫码登录并确认后,会触发 message回调,里面携带了 code 信息。拿到 code 之后,通过自己的后台服务,换取用户信息。通过直接页面跳转的方式,专有钉钉用户扫码登录并确认后,会302到你指定的redirect_uri,并向url参数中追加临时授权码code(此code非authcode)及state两个参数。
(5)获取access_token
通过 /gettoken.json 接口,根据 appkey,和appscret获取调用的凭证。这里有一点需要说明的就是,appkey 和 appscret 扫码登录有专门的,和h5应用不是同一个,通常都会带 _dingoa 后缀。
(6)获取用户信息
通过服务端的 /rpc/oauth2/getuserinfo_bycode.json ,传入获取到的临时授权码,可以获取用户信息,这里没有手机号。我发现我找了很多的地方,还是没有找到直接获取用户手机号的方法。根据群里的消息说明:“经过大数据局评估,处于安全考虑,目前暂时无法提供获取人员信息返回手机号的功能。”
1.扫码登录流程 构造登录页面,实现用户登录。
2.获取用户详情 通过免登授权吗,获取用户信息,进行下一步的操作。
3.服务端通过临时授权码获取授权用户的个人信息
4.浙政钉扫一扫获取用户信息 这里就是使用了专有钉钉进行了扫码登录集成,给了一个测试用例,有前端和后端代码。
3.接口调试
比如我测试 /mozi/employee/getEmployeeByCode 接口,根据员工 Code 查询详情,打开Api控制台,进行调试。
这里有一点要说明的就是,这个 accessKey 和 secretKey ,就是应用的 App Key 和 App Secret。
1.java浙政钉(专有钉钉)免登录对接 1.注册专有钉钉ISV并且创建应用。2.根据下方链接,建立基础数据并创建应用,创建应用这步比较坑,不能直接用超管创建应用。得添加一个开发者角色的账号去创建应用,不然应用开发里可能看不到应用。 千万记得选择应用使用范围。 工作台发布后,如果没配置这个,还是看不到应用的。还包括了一些常见的问题:各种NoClassDefFoundException;User not authorized to operate on the specified resource. 检查应用的服务端权限是否正常。还有前台服务,和后台接口。
4.工作台
专有钉钉的工作台,通过超级管理员,也就是通过 isv 企业注册的账号,就可以进入进行用户管理,增加和删除用户,其他人就可以使用添加的用户进行认证了。