API集成中,4种参数的传递示范
集成中心内置了几十家服务商的上百个接口,初学者在调用接口时,对于一些特殊类型的参数可能无从下手,对此我们做了相关示范,有以下4种类型:
- 1.文档、图片的URL
- 2.普通数组
- 3.对象数组
- 4.图片Base64
一、图片/文档的URL
例如发票识别、文字识别等接口,传递的参数是图片的URL,只要接口服务器能访问URL就能识别图片或文档。
如果传递URL的参数需要选择附件字段的图片或文档,则需要下通过工作流获取。
API查询字段
新建记录时不能使用此字段,需要保存记录后,通过工作流的代码节点获取附件中图片的URL,写入到图片URL字段(文本控件),然后才可以点击API查询按钮,传递的URL参数选择图片URL字段即可。
工作流中调用已集成API
流程中先通过代码块获取图片URL,图片URL参数选择代码块输出的URL即可。
如何获取附件的URL
请参考代码块示范5.1
二、普通数组
以企业微信的向群机器人发送文本接口为例,有个参数需要传递普通数组, 如下图:
普通数组 的格式为[元素1,元素2,...]
在此场景下,传递的是需要@的成员手机号,那格式就是[19909090909,18811111111,...], 如果需要@群里所有的人,则数组格式为["@all"]。
目前只有代码块可以直接输出这种数组格式,因此,要传递此类型的参数,必须通过工作流。
新建记录时,API查询字段无法传递数组参数,只能建立记录后,通过工作流获取数组格式,再点击API查询按钮。
普通数组获取示范
以向企业微信发送文本消息 为例,获取手机号的数组。
工作流调用集成API
工作表配置
1、记录中增加需要提醒的成员字段
人员字段为多选, 需要获取到选择的人员的对应是几号
2、记录中有一个全员提醒的字段
当勾选全员提醒时,数组直接为["@all"]
工作流部分配置
可以是按钮触发工作流也可以是新增记录触发工作流发送消息,看实际需要。
1、添加分支节点,分别走全员提醒和指定人员提醒流程
工作流触发后,要先判断是否全员提醒,如果不是,则获取需要提醒个别人员
如果您的实际场景不会全员@,则全员提醒的字段配置和分支流程配置可以去掉。
2、全员提醒分支
2.1) 通过代码块节点直接输入@all数组
2.2) 通过JSON 解析节点获取数组
2.3) 调用集成API节点选择json解析节点
3、部分人员提醒分支
3.1)从组织中获取选择提醒的人员
3.2)通过代码块讲人员的手机号转为数组
点击测试前,手机号参数写成固定的,如["+8619909090909"]
测试成功后,记得换成节点字段
var mobiles= JSON.parse(input.mobile.replace(/\+86/g, ""))
output = {mobiles:mobiles};3.3) 通过JSON 解析节点获取数组
3.4) 调用集成API节点选择json解析节点
API查询字段调用集成API
API查询字段传递普通数组时,和工作流不一样,不同元素之间只有逗号即可,中括号不需要。因此在API查询字段中传递普通数组时,可以选择文本字段或多选字段,因为他们可以存储这个格式的数组。
指定手机号提醒
全员提醒
我们还以发送企业微信群消息为例,在API查询字段查询前,需要通过工作流获取下手机号列表,然后写入到某个文本字段中,普通数组的参数选择这个文本字段即可。
工作流部分配置
1.代码块节点处理获取到的人员手机号
先用固定值测试,测试完毕后,再替换节点字段
所需代码块:功能是去掉+86、双引号和中括号
output = {output: input.phone.replace(/["\[\]]|(\+86)/g, '') };
如果您需要将获取多条记录中的其他字段组成数组,写入到文本字段,可以使用下面的代码
output = {output: input.phone.replace(/["\[\]]/g, '') };
2.将获取到的内容更新到文本字段
更新效果
API查询字段配置
API查询字段配置中,传递的普通数组选择提醒人员手机(文本字段)
三、对象数组
对象数组格式如下,可以理解为多行记录格式,下面的对象数组表达了两个人的姓名和年龄的数据:
[
{
"name" : "jim",
"age" : 18
},
{
"name" : "bob",
"age" : 16
}
]
对象数组获取示范
以企业微信发送图文消息为例
此接口支持发送多条图文消息,所以需要传递对象数组,有2种方式可以传递对象数组参数。
API查询字段
使用在API查询字段时,传递对象数组的参数时,只能选择子表或关联记录(多条),因为这两个字段是多行结构,一行记录代表一个业务对象,多行记录就是一个对象数组了。
如果发送的内容是本记录内容,则不能使用API查询字段,可以通过自定义按钮触发工作流发送。
工作流
在工作流中,可以先通过“获取多条数据”节点获取要发送的记录,然后调用已集成API节点中,选择获取的多条数据中的字段即可。
发送本记录内容,如何传递参数
如果发送的内容都在本记录中,不在关联记录或子表中,怎么处理?
因为对象数组参数格式的要求,我们必须获取的是多条数据结构,因此,依然需要通过获取多条数据节点再查询下当前记录,过滤条件设置为记录ID等于当前记录ID即可,这样就只查询到本记录了。
查询到后,通过调用已集成API节点接口选择参数即可。
四、图片的Base64编码
例如百度的识别行程卡接口,传递的参数是图片Base64编码,不能传递图片URL,这就导致了只能通过工作流代码块节点获取到图片的base64,再调用API。
获取图片的Base64编码,请参考常用代码块示例5.1