跳至主要内容

API整合中的四種參數的傳遞


初學者在呼叫介面時可能對某些特殊類型的參數有些無從上手。以下是 4 種參數的範例:

  1. 文件和圖像的 URL
  2. 普通陣列
  3. 物件陣列
  4. 圖片的 Base64

一、文件/圖像URL

例如文字辨識等接口,傳遞的參數是圖片的URL,所以接口伺服器只要存取到該URL,就可以辨識該圖片或文件。

如果傳遞的URL的參數需要在文件欄位中選擇圖片或文檔,則需要透過工作流取得。

  • API查詢欄位 創建新資料時不使用該欄位。相反,儲存資料後,透過工作流中的程式碼區塊節點取得附加影像的 URL,並將其寫入影像 URL 欄位(文字控制項),然後才能按一下 API 查詢按鈕,並選擇影像 URL 欄位為 URL 參數。
  • 呼叫整合API節點 工作流中先透過程式碼區塊節點取得圖片的URL,URL參數選擇程式碼區塊的輸出URL。

二、普通陣列

向群組機器人發送文字的介面為例,有一個參數需要傳遞一個普通陣列。

普通陣列 的格式:[element1,element2,...] 。

這裡傳遞的是該成員的手機號碼 。若需要提及群組中的所有成員,格式為["@all"] 。

目前這種格式的陣列只能透過程式碼區塊直接輸出,所以要傳遞這種類型的參數需要一個工作流。

創建新資料時,陣列參數無法透過API查詢欄位傳遞,只有在資料創建後,才能透過工作流獲取,並點擊API查詢按鈕。

1. 取得普通陣列

發送簡訊來取得手機號碼陣列為例。

2. 工作流節點-呼叫整合API

2.1 工作表設定

2.1.1 新增提醒成員欄位

成員欄位是多選的。

2.1.2 新增「全部提醒」欄位

如果選中,則陣列為["@all"] 。

2.2 工作流設定

可以是按鈕觸發的工作流,也可以是新資料觸發的工作流,取決於您的實際需求。

2.2.1 新增分支節點,Alert all/Alert提及的成員

當工作流觸發時,首先查看是否所有成員都被提醒,如果沒有,請取得需要提醒的成員。

如果不需要提醒所有成員,您可以刪除相關欄位和分支流。

2.2.2 分行 - 通知所有

  • 2.2.2.1)依程式碼區塊節點輸出["@all"]陣列。
  • 2.2.2.2) 透過JSON解析節點取得陣列。
  • 2.2.2.3)設定呼叫整合API節點時,選擇JSON解析節點中的陣列

2.2.3 分行 - 提醒提及的成員

  • 2.2.3.1)讓組織中的成員收到警報
  • 2.2.3.2)透過代碼區塊將成員手機號碼轉換為陣列 測試前,將手機號碼參數寫入固定值。 測試成功後,將其替換為節點中的欄位。
    var mobiles= JSON.parse(input.mobile.replace(/\+886/g, ""))
    output = {mobiles:mobiles};
  • 2.2.3.3)透過JSON解析節點取得陣列
  • 2.2.3.4) 設定呼叫整合API節點時,選擇JSON解析節點中的陣列

3. 工作表欄位 - API查詢

透過 API 查詢欄位傳遞普通陣列與在工作流中不同,工作流中不同元素之間只需要逗號,不需要中間括號。因此,當透過 API 查詢欄位傳遞普通陣列時,您可以選擇文字欄位或多選欄位,因為它們可以以此格式儲存陣列。

  • 提醒提及的成員
  • 提醒所有

這裡也以向WeCom群發送簡訊為例。在API查詢之前,需要透過工作流取得手機號碼列表,並將其寫入文字欄位,選擇普通陣列的參數。

3.1 工作流設定

  • 1.在代碼區塊節點處理取得到的手機號碼 首先使用固定值進行測試,然後將其替換為節點欄位。 所需的程式碼區塊:刪除+86、雙引號和中括號。

    output = {output: input.phone.replace(/["\[\]]|(\+886)/g, '') };

    如果需要將多個資料中的其他欄位組合成一個陣列並寫入文字欄位,可以使用以下程式碼。

    output = {output: input.phone.replace(/["\[\]]/g, '') };

  • 2.將獲取到的內容更新到文字欄位

  • 效果如下圖

3.2 API查詢欄位設定

設定API查詢欄位時,傳入的普通陣列選擇警報成員手機欄位(文字欄位)。

三、物件陣列

物件陣列的格式如下,可視為多行資料的格式。以下物件陣列表示兩個成員的姓名和年齡資料:

 [ {"name" : "jim", "age" : 18},{ "name" : "bob", "age" : 16} ]  

1. 如何取得物件陣列

以向WeCom發送有圖片的訊息為例

此介面支援發送帶有影像的多個訊息,因此需要傳遞物件陣列。有兩種方法可以傳遞物件陣列參數。

2. API查詢

透過API查詢欄位傳遞物件陣列參數時,只能選擇子表單欄位或關係欄位(多行),因為這兩個欄位是多行結構,其中一行資料代表一個業務對象,多行資料代表一個業務對象。資料行是一個物件陣列。

如果發送的是當前資料的內容,則不能使用API查詢欄位,而是可以透過自訂按鈕觸發的工作流發送。

3. 工作流

在工作流中,首先透過【取得多個資料】節點取得需要傳送的資料,然後在【呼叫整合API】節點中選擇取得到的欄位。

4. 發送目前資料

如果要傳送的內容全部在目前資料中而不是在關聯的資料或子表單中呢?

由於物件陣列參數的格式,需要取得多行結構的資料,因此,先透過【取得多個資料】節點取得資料,然後查詢目前資料,篩選設定為Record ID等於目前資料ID,這樣就只查詢目前資料。

如果需要查詢,可以透過【呼叫整合API】節點來選擇參數。

四、影像的 Base64 編碼

對於某些接口,傳遞的參數是圖片的Base64編碼而不是圖片URL,只能透過代碼區塊節點取得圖片的Base64編碼,然後呼叫API。