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

information

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

目錄

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

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

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

函數

電腦/行動裝置

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物件將解析為包含上述回應內文、狀態代碼和響應標頭的陣列。
kintone.Promise物件
failureCallback 函數 可省略 請求失敗時要執行的函數
已執行 API 的回應內文(字串)作為參數傳遞給函數。
如果省略, 返回kintone.Promise物件,並在執行的 API 的回應內文(字串)中廢棄。
kintone.Promise物件

返回值

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

可使用的畫面

電腦
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面
  • 記錄列印畫面
  • 圖表畫面
行動裝置
  • 記錄清單畫面
  • 記錄詳情畫面
  • 新增記錄畫面
  • 編輯記錄畫面

示例代碼

如何使用回調進行編寫
 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 快取缺失)的錯誤。
  • 如果設置了 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)