腾讯轻联 场景案例(开发指南)

这篇通过两个案例说明Dataway在腾讯轻联系统中的应用:一是模拟企业微信access_token获取流程,利用缓存减少API调用;二是演示将JSON数据转换为XML格式,展示Dataway的数据类型转换能力。 access_token获取:通过缓存机制和条件判断,结合Dataway脚本实现token的获取、存储与复用。 JSON转XML:使用Dataway脚本和Entity类型,设置不同MIME类型完成数据格式转换。

相关产品
腾讯轻联 产品页,含版本规格、价格与购买入口。

这篇通过几个典型的场景案例说明 Dataway 在腾讯云腾讯轻联系统中应用。

一、使用 Dataway 获取 token

腾讯云腾讯轻联对 企业微信 API 进行了封装,即企业微信连接器,用户可以通过可视化配置轻松完成成员管理、消息推送等多种操作。
连接器隐藏了许多复杂的数据处理和 API 调用,例如:业务 API 都依赖 access_token 登录凭证来鉴权调用者身份,因此,在调用 API 前,都需要先获取 access_token。

本示例将模拟 access_token 获取过程,并说明 Dataway 脚本在其中起到的作用。

二、配置流程

鉴于业务 API 都依赖 access_token,access_token 必然会频繁使用,因此,在调用 API 获取 access_token 后,可以将其缓存起来,再次获取时直接从缓存读取,减少API调用。整条流的配置如下,根据是否缓存了 access-token 将流执行分为两种情况,若已缓存,从缓存读取即可,否则,需要调用 API 获取 access_token:

三、条件判断(组件3、4、7)

三个条件判断组件组合在一起,将流执行分为了两种情况,若符合组件4的执行条件,则流向组件5和6,其余情况流向组件8、9、10和11。其中,组件4的执行条件期望是一个条件表达式,因而使用 表达式 模式引用了"缓存-检查是否存在"组件2的输出,即是否缓存了 access-token。


四、缓存(组件2、5、11)

·在缓存中,以键值"access-token"绑定 access_token 数据,由于键值是固定的,可以使用 文本 模式以字面量的方式输入"access-token"。

·在缓存存储(组件11)中,还需要设置需要缓存的数据,即变量 access_token,可以使用 文本 模式通过集成流数据面板引用变量 access_token。

五、配置变量(组件6、8、11)

·获取 access_token 的API需要 corpid 和 corpsecret 两个参数,在"企业微信"连接器中,这两个参数在连接器配置中直接输入即可。在示例中,通过"配置变量"组件8设置变量 corpId 和 corpSecret 来表示这两个参数的获取过程。corpId 和 corpSecret 作为固定值,可以使用 文本 模式以字面量的方式输入。示例图片中以 test-corpid 和 test-corpsecret 代替真实 corpid 和 secret,用户可跟随 企业微信 API 文档的引导,查询自己真实的 corpid 和 secret。

·"配置变量"组件6和11将获取的 access_token 设置为变量,方便调用业务API等后续过程使用。组件11需要从 API 调用的响应数据中找到对应的 access-token,这是一个数据处理过程,使用 表达式 模式对引用的API调用数据进行解析。

·组件6从缓存中取出 access_token,直接使用 文本 模式引用"缓存-读取"组件的输出即可。

·组件11需要从 API 调用的响应数据中找到 access-token,这是一个数据处理过程,使用 表达式 模式对引用的 API 调用数据进行解析。

六、HTTP 请求(组件9)

"HTTP 请求"组件向企业微信 API 地址发起 get-token 请求调用,请求参数为变量中的 corpId 和 corpSecret,使用代码模式动态设置配置中的"URL 参数"。无论是 Python 异或 Java 脚本,均可使用"集成流数据面板"引用变量 corpId 和 corpSecret。

·代码模式 Python

·代码模式 Java

注意:说明:

注意:实际使用时,企业微信连接器使用 XML 语言完成 get-token,本示例为了展示 Dataway 使用方式在流中复现了这一过程。Dataway 在其中主要的作用是流转和预处理消息 Message ,实现动态赋值,并将数据交给上层调用组件使用。

七、将 JSON 类型输入转换成 XML 类型输入

使用 Dataway 可以完成数据类型的转换,例如 JSON 转换成 XML、XML 转换成 CSV 等,在此以 JSON 类型的数据转换成 XML 为例。

八、输入数据

我们在流中预先使用"配置 Payload"组件将当前消息载荷(msg.payload)设置为 JSON 格式的 Entity 数据。

def dw_process(msg): return Entity.from_value({ 'name': 'zhangsan', 'age': 12, 'male': True, 'brothers': ['lisi', 'wangwu'], }, mime_type="application/json")

九、代码模式 Python 脚本

新增"配置 Payload"组件,模拟需要输入 XML 数据的组件,此时,可以使用 代码模式 Python 脚本将 JSON 数据转化为 XML 数据。

def dw_process(msg): input_param = msg.payload['^value'] return Entity.from_value({ 'root': { 'name': input_param['name'], 'age': input_param['age'], 'male': input_param['male'], 'brothers': input_param['brothers'], "@id": "haha" } }, mime_type="application/xml")

十、输出数据

使用 Entity['^blob'] 获取二进制数据并解码,可以查看输出的 XML 结构字符串,如下所示:

<?xml version="1.0" encoding="utf-8"?><root id="haha"> <name>zhangsan</name> <age>12</age> <male>true</male> <brothers>lisi</brothers> <brothers>wangwu</brothers></root>

注意:说明:

注意:Dataway 表达式通过 Entity 类型提供强大的数据转换功能,通过设置不同的 MIME 类型,可以实现不同类型之间的数据转换。详情请参见 基本概念-MIME 类型支持。

赞 (0)
上一篇 4天前
下一篇 4天前