第一部分:开放平台 API
开发前的准备
- https://open.mingdao.com/先创建一个应用(先用明道账号登录),点击“我的应用”
- 点击创建新应用
- 应用名称、图标、简介、描述、分类,这些内容随便填一下。应用范围选择“公共应用”。注意下面有个回调地址,后面需要用到,这里可以随便填写一个地址,比如明道云 webhook 自动生成的地址。
- 创建完成后,点击详情信息。
- 点击测试这个应用
- https://app.mingdao.com/根据名称搜索你上面建立的应用,点击安装。
到此,开发前期的准备工作已完成。
二、开发
- 1、拿到 code(参考:https://open.mingdao.com/doc/oauth2/oauth2/authorize)
按照如下方式拼接调用参数,其中 app_key 可以从创建的应用处拿到。
- 拼接好参数后,将链接粘贴到浏览器窗口,点击访问,即可拿到返回的 code。
按照如下格式,拿到获取 token 所需要的参数。
- 由于这里拿到的 token 是 24 小时有效期,所以可以建立个工作流。(应该有永久 token 的办法,我在研究下)
- 返回的 access_token 就是我们需要的令牌,可供后续接口调用验证。
三、调用
- 选择一个接口进行调用,这里我用了个简单的接口进行测试。(https://open.mingdao.com/doc/v1/user/get_user_card)
- 需要的参数上面我们都说过了,这里就不在介绍了。
- 成功返回参数。
好了,到这里,开放平台 API 的调用相信你已经掌握了,快去调用其他接口试试!
第二部分:企业授权开发接口
文档地址:https://www.showdoc.com.cn/mingdao/15519621
1、获取 AppKey、SecretKey
组织管理 -集成- 其他 - 查看密钥,注意:这里不要随便点击重新生成,否则会影响别人已经在用的流程。
2、生成签名
通过代码块,生成签名,这里建议搭建一个封装业务流程,后续别的接口都会用签名,可以直接调用。
var crypto = require('crypto');
var _ = require('lodash');
function getSignature(appKey, secretKey) {
var date = new Date();
var timestamp = date.getTime();
var tempdata = {
"AppKey": appKey,
"SecretKey": secretKey,
"Timestamp": timestamp.toString()
};
var signstr = '';
_(tempdata).keys().sort().each(function(key) {
signstr = signstr + '&' + key + '=' + tempdata[key];
});
signstr = signstr.substring(1);
return {
'sign': base64(sha256(signstr)),
'timestamp': timestamp.toString(),
'signstr': signstr //查看变量拼接是否正确
};
}
function sha256(s) {
var hash = crypto.createHash('sha256');
hash.update(s, 'utf8');
return hash.digest('hex').toLowerCase();
}
function base64(s) {
var result = new Buffer.from(s, 'utf8');
return result.toString('base64');
}
output = getSignature(input.appkey, input.secretkey);
3、选择一个接口调用
这里以一个简单的获取流程待办计数为例(https://www.showdoc.com.cn/mingdao/9586887535900956),这里我做一了一个表单,将调用所需要的信息存了进去。
工作流中,首先调用封装业务流程获取到所需要的 timestamp、sign
按照接口调用说明,拼接所需要的参数,这里用户 ID 可以实现通过工作流获取,由于用户 ID 基本上是不变的,拿到后可以固定存放起来。
打印输出内容
恭喜你,到这里,相信你已经学会了企业授权开发接口的开发,快去试试吧。
文档中的样例应用,需要的自取
API 调用教学_20240401_1015.mdy