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