從外掛程式上傳檔案到外部

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

從外掛程式上傳檔案到外部

將檔案從外掛程式上傳到外部服務。
此 API 允許您繞過跨域限制並向外部服務發送請求。

如果要使用要保密的資訊(例如身份驗證資訊)執行外部 API,請在執行 API 之前提前將必要的資訊存儲在外掛程式中。
有關在外掛程式中存儲和獲取資訊的 API,請參閱以下頁面:

函數

PC/行動裝置

kintone.plugin.app.proxy.upload(pluginId, url, method, headers, data, successCallback, failureCallback)

參數

參數 類型 必須 說明
pluginId 字串 必須 執行 API 的外掛程式的 ID
url 字串 必須 請求 URL
method 字串 必須 HTTP 方法
指定以下值之一:
  • POST
  • PUT
headers 物件 必須 請求標頭
如果不指定任何內容,請指定 {}
data 物件 必須 請求正文
data.format 字串 必須 將資料上傳到代理目標的格式
只能指定"RAW"
data.value Blob(包括文件) 必須 上傳圖片
要上傳的文件中的數據
可指定的最大大小為 200MB。
successCallback 函數 可省略 請求完成後要執行的函數
函數參數傳遞了三條資訊:
  • 第一個參數:回應正文(字串)
  • 第二個參數:狀態代碼(數位)
  • 第三個參數:回應標頭(物件)
如果省略,則返回 kintone.Promise 物件,將解析為包含上述回應正文、狀態代碼和響應標頭的陣列。
failureCallback 函數 可省略 請求失敗時要執行的函數
已執行 API 的回應正文(字串)作為參數傳遞給函數。
如果省略, 返回 kintone.Promise 物件 在執行的 API 的回應正文(字串)中廢棄。

返回值

如果指定successCallback,則沒有返回值。
如果省略 successCallback 參數,返回 kintone.Promise 物件

可使用的畫面

PC
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面
  • 記錄列印畫面
  • 圖表畫面
行動用戶端
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面

示例代碼

如何使用回調進行編寫
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const data = {
  format: 'RAW',
  value: '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://sample.com', 'POST', {}, data, (body, status, headers) => {
  // success
  console.log(status, JSON.parse(body), headers);
}, (error) => {
  // error
  console.log(error); // 顯示代理 API 的回應正文(字串)
});
如何使用 kintone.Promise 物件編寫
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 如何使用 kintone.Promise 物件編寫
const data = {
  format: 'RAW',
  value: '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://sample.com', 'POST', {}, data).then((args) => {
  // success
  /* args[0] -> body(字串)
   * args[1] -> status(數位)
   * args[2] -> headers (物件)
   */
  console.log(args[1], JSON.parse(args[0]), args[2]);
}, (error) => {
  // error
  console.log(error); // 顯示代理 API 的回應正文(字串)
});

注意事項

  • 如果指定的伺服器 url 不存在,則返回狀態代碼為"503"(DNS Cache Missing)的錯誤。
  • 如果設置了 IP 位址限制,要使用該 JavaScript API 為同一域的其他應用執行 kintone REST API,則必須允許 kintone 的 IP 位址。
    有關 IP 位址的詳細資訊,請參閱 cybozu.com使用的網域及IP位址 (External link)
    但是,從安全角度來看,不建議這樣做,因為它允許通過執行外部 API 的 API 從所有 kintone 環境自由訪問。
  • 即使您使用此 API 執行外部 API,也不會自動發出應由執行的 API 目標發出的 cookie。
  • 如果 HTTP 的方法指定為 POST 或 PUT,則會自動追"Content-Length"和"Transfer-Encoding"標頭。
    如果在請求裡指定,則會出現錯誤。

限制

  • 以下是對執行的外部 API 回應的限制:
    • 響應標頭的最大為 100 行,每行的最大長度為 8,180 位元組。
    • 回應正文的上限為 10MB。如果超過限制,則會發生錯誤。
    • 回應正文僅支援字串。無法檢索二進位數據,例如圖像。
  • 不能使用自證書與伺服器通信。
  • 目標瀏覽器基於 操作環境中的 Web 瀏覽器 (External link)