钉钉家族
介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉
,专有钉钉
,浙政钉
钉钉
是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。
专有钉钉
原名政务钉钉
,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。
浙政钉
为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单位根据自身业务特点分别建设自建应用,最终形成全省统一的政府系统掌上协同办公平台。
1.
钉钉
和专有钉钉 & 浙政钉
是两者独立的系统,两者没有什么关系。2.
浙政钉
是专有钉钉
的一个特殊租户,是专有钉钉
SAAS化部署给政府使用的一个专有钉钉(改名为浙政钉,本质上还是专有钉钉)。
专有钉钉入驻
-
申请入驻开放平台
开发商首先需要申请入驻 专有钉钉开发平台 上,填写相关信息后,经审核通过即可获取开发权限(提交申请后,一般三个工作日内会审核完成,并收到对应的短信通知)。 -
创建应用 & 接口联调
开发商申请入驻成功,并收到一个携带初始账号密码的短信后,自行登录专有钉钉后台,并在ISV租户内 创建应用 。应用创建成功后,可以查看生成的appKey和appSecret,并根据API说明找到自己需要使用的全部接口进行联调测试,直至所有接口测试成功、应用可以正常使用。 -
专有钉钉的组织架构建设
这边不详细介绍了,文档描述很清晰:https://open-portal.on-premises.dingtalk.com/portal/#/helpdoc?apiType=QUICK_START&docKey=3355321
免登接入流程 - 准备流程(应用相关)
1. 创建应用
2. 应用配置
3. 应用权限 - 应用访问通讯录(自己选对应的部门)
4. 应用发布
应用发布
控制台 - 应用业务设置
5. 配置用户工作台(组织或个人自己选)
应用管理
新建分组
添加应用
配置工作台
主题随意选
点击相应数字区域
结果展示 & 发布
6. 手机APP打开专有钉钉(非超管用户登录)
免登接入流程 - 技术流程
环境说明
正式环境:专有钉钉提供给二三⽅进⾏应⽤开发使⽤,该环境在公⽹可以访问。稳定性上有⼀定保障。 运⾏态(SDK中配置的域名,调⽤API使⽤)域名:open.on-premises.dingtalk.com
固定参数:租户ID(英文写法很多:tenantId、corpId、realmId等)
管理工作台页面鼠标右键查看网页源代码,其中的 realmId 即是租户ID
1. 前端
获取免登授权码
npm install gdt-jsap
# 或者
npm install --save gdt-jsapi
在页面引用,这段代码只要在
专有钉钉
下才生效,需要测试的话将res显示到页面之后部署到线上之后通过手机版专有钉钉访问才能拿到免登授权码
import dd from 'gdt-jsapi';
dd.getAuthCode({}).then(res =>{
console.log(res)
}).
catch(err =>{})
2. 后端
获取access_token
通过应用的
appKey
和appSecrt
获取应用access_token
ExecutableClient executableClient =ExecutableClient.getInstance();
executableClient.setAccessKey("appkey");
executableClient.setSecretKey("appsecrt");
executableClient.setDomainName("不同环境对应不同域名");
executableClient.setProtocal("https");
executableClient.init();
//executableClient要单例,并且使用前要初始化,只需要初始化一次
String api = "/gettoken.json";
GetClient getClient = executableClient.newGetClient(api);
//设置参数
getClient.addParameter("appkey", "xxx");
getClient.addParameter("appsecret", "xxx");
//调用API
String apiResult = getClient.get();
System.out.println(apiResult);
3. 后端
获取用户详情
通过应用的
流程1
获取的code
,以及流程2
获取的access_token
获取用户详情
ExecutableClient executableClient =ExecutableClient.getInstance();
executableClient.setAccessKey("appkey");
executableClient.setSecretKey("appsecrt");
executableClient.setDomainName("不同环境对应不同域名");
executableClient.setProtocal("https");
executableClient.init();
//executableClient要单例,并且使用前要初始化,只需要初始化一次
PostClient postClient = executableClient.newPostClient(Config.getEmployeeByAuthCode());
postClient.addParameter("access_token", "xxx");
postClient.addParameter("auth_code", "xxx");
String apiResult = postClient.post();
System.out.println(apiResult);
总结
有空再出其他教程