跳到主要内容

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