数据整合利器,明道云WebHooK节点高级用法教学

明道云支持API和Webhook功能,今天笔者就教会大家,如何在明道中进行API鉴权自动刷新,以及调用前参数签名,学会这些可以说市面上90% 的第三方API接口都可以调用。(以分贝通对接案例讲解)

一.Token的自动刷新

应用程序可通过调用开放平台提供的API获取到第三方的数据,因为涉及数据隐私,所以在使用前必须获得企业/会员的授权,才可以调用API(公开数据除外)。所以就需要获取用户的授权,以及保证授权的有效性。

第一次获取授权请手动获取,把对应的数据保存到一张工作表中来进行维护,Token初始化后,可以设置【自动刷新token】 工作流,来保证token的有效性。

实现原理:由于大部分的第三方API授权接口返回都包含以下三个参数:(access_token,refresh_token,expires_in)我们根据每次返回的Expires_in过期时间来计算出下一自动刷新token的时间。

如果第三方平台没有Expires_in 返回 ,一般第三方API文档中会有说明token的时效。例如: 2小时 7小时 1天 7天不等,可以根据时效自动计算下次的自动刷新时间。

工作流设置步骤如下:

  1. 新建工作流->选择按日期字段触发

2.调用token刷新接口,拿到对应的返回值:

3.对于Expires_in参数进行处理 然后更新工作表中的token refresh_token 自动刷新日期。

二.JavaScript中签名的加密

对于分贝通平台,接口信息文档,Appkey需要作为参数参与签名,且不参与传递.加密数据包括时间戳timestamp和data数据,以上三个数据按照 “timestamp={0}&data={1}&sign_key={2}”顺序拼接后,进行MD5加密。

以下在代码块中的具体实现:

var crypto = require(‘crypto’);//引入加密 划重点敲黑板

var key=input.singKey;//appkey

var page=input.page;

var timespan=new Date().getTime();//获取时间戳

var data={};

data.page_index=new Number(page);

data.page_size=20;

data.state=0;//获取所有状态

data.search_category=1;//获取所有企业

Var signstr=new Buffer.from(“timestamp=”+timespan+”&data=”+JSON.stringify(data)+”&sign_key=”+key, ‘utf-8’)

function md5(s) { //Md5加密

var hash = crypto.createHash(‘md5’);

hash.update(s);

return hash.digest(‘hex’);

}

Output= {“timespan”:timespan,”page_index”:page,”page_size”:data.page_size,sign:md5(signstr),”data”:JSON.stringify(data)};

效果如下图:

三.WebHook调用以及返回值写入工作表

添加webhook 节点,使用发送自定义请求,POST,接口地址按照接口文档填写下,把代码块返回值按照接口中需要传递的参数一一对应赋值。

获取返回值,获取到数据就可以写入到工作表中,就可以进行审批报销等操作了。关于工作流Wehhook的用法,可以参考帮助文档《Webhook:如何请外部系统API请求数据,并写入工作表》


最终效果如下图:

总结

只要了解nodejs 中的加密方式,根据这个教程,参考其他第三方接口文档一步步来,一定可以完成设置。

如有需要欢迎咨询!

参考资料

  1. 分贝通签名规则说明:http://docs.open.fenbeitong.com/open-api/2apijie-ru/22-apijie-ru-shuo-ming/221-qian-ming-suan-fa.html
  2. 分贝通获取机票列表地址:http://docs.open.fenbeitong.com/open-api/2apijie-ru/25-ji-piao/252-ji-piao-ding-dan-xiang-qing.html
  3. nodejs加密(sha1 base64 md5)参考地址:http://nodejs.cn/api/crypto.html#crypto_crypto

关于明道云

明道云是一个创新的超级应用平台,可以帮助用户零代码构建企业应用,用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用,打通企业内部数据。明道云还具备超自动化引擎,可以全面自动化复杂和重复的业务流程。运用明道云的集成中心与完整的API对接能力,用户可以轻松地将明道云与外部系统集成。除此之外,明道云超级应用平台还具备很高的可组合性,国际化支持,并支持云原生架构,实现了多云部署能力。通过插件架构,明道云正在逐步建立起繁荣的实施与开发生态。

明道云可以帮助企业大大节省软件费用、降低定制开发的成本和时间,拥有一个极度灵活和易用的数字化平台,是企业数字化建设的重要工具。目前已有上百万用户使用,付费企业超过4000家,包括可口可乐、复星集团、中国移动、中国联通、中国电信、中铁集团、北京地铁、佛山铁路、华夏银行、民生银行、迪卡侬、艾默生电气、泰科电子、四川航空、东方证券、万豪酒店、洲际酒店等知名客户。

2021年5月,明道云获得海纳亚洲近亿元投资。公司目前有超过130名员工,产品研发团队过半,总部位于上海漕河泾开发区,在北京、广州、深圳、成都、郑州、武汉、西安和宁波设有分支机构。公司为高新技术企业,上海市专新特精认定企业。