Index
执行外部的API
在kintone自定义时,通过此API来执行外部的API。
使用此API给外部API发送请求时,可以规避跨域限制。
当把文件上传到外部时,请参照 “将文件上传到外部” 。
PC专用版和移动端专用版都可以使用。
即使通过proxy,也不能自动发行需在proxy端的网站发行的cookie。
可用的Content-Type没有限制。
函数
kintone.proxy(url, method, headers, data, successCallback, failureCallback);
参数
参数名称 | 要指定的值 | 必须 | 说明 |
---|---|---|---|
url | 字符串 | 必须 | 请求URL |
method | 字符串 | 必须 | HTTP方法。 GET,POST,PUT,DELETE 中任一个。 |
headers | 对象 | 必须 | 指定请求头对象。 未指定的时候,默认{}。 (例) {'Content-Type': 'application/json'} |
data | 对象或字符串 | 必须 | 请求里包含的数据。未指定的时候,默认{}。 仅可用于POST/PUT,GET/DELETE时即使指定了也将被忽视。 |
successCallback | 函数 | 可省略 | 向Proxy处发送的请求,结束时执行的回调函数。 |
failureCallback | 函数 | 可省略 | 发往proxy API 的请求,失败时执行的回调函数。 |
返回值
省略参数successCallback时,返回 kintone.Promise 对象。
参考: 事件处理的写法
指定successCallback的时候,没有返回值。
例子
使用call back的记述方法
kintone.proxy('https://*****.***.net', 'GET', {}, {}, function(body, status, headers) { //success console.log(status, JSON.parse(body), headers); }, function(error) { //error console.log(error); //显示proxy API的response body(字符串) });
使用kintone.Promise对象的记述方法
kintone.proxy('https://*****.***.net', 'GET', {}, {}).then(function(args) { //success /* args[0] -> body(字符串) * args[1] -> status(数值) * args[2] -> headers(对象) */ console.log(args[1], JSON.parse(args[0]), args[2]); }, function(error) { //error console.log(error); //显示proxy API的response body(字符串) });
注意事项
使用url指定不存在的服务器时、应答返回状态码为「503」(DNS Cache Missing)的错误
如您的环境设置了 IP 地址限制,那么使用此 JavaScript API 对同一域名的其他应用执行 kintone REST API 时,需要许可 kintone 的 IP 地址。
关于 IP 地址,请参考cybozu.cn使用的域和IP地址。
但是,这样的话就可以通过执行外部 API 的API来自由访问 kintone 环境,因此从安全角度来说,不推荐这样的做法。
如要访问同一域名的其他应用,请使用 kintone REST API 请求。使用此 API 执行外部 API 时,外部的 API 不会自动发行原本会发行的 Cookie 。
当你发送的HTTP请求为POST / PUT时,由于header里“Content-Length”和“Transfer-Encoding”会在内部自动添加,因此用户在发起请求时无需手动设置它们,否则将导致出错
限制事项
关于要执行的外部 API 的应答限制如下。
应答头部的上限是:最多 100行,1 行最大8192 bytes。
应答正文的上限是10MB。超过上限会报错。
应答正文仅可使用字符串。不可获取图片等二进制数据。
无法与使用自签名证书的服务器通信。
将文件上传到外部
在kintone自定义时,可以通过此API将文件上传至外部系统。
使用此API给外部API发送请求时,可以规避跨域限制。
PC专用版和移动端专用版都可以使用。
即使通过proxy,也不能自动发行需在proxy端的网站发行的cookie。
可用的Content-Type没有限制。
函数
kintone.proxy.upload(url, method, headers, data, successCallback, failureCallback);
参数
参数名称 | 要指定的值 | 必须 | 说明 |
---|---|---|---|
url | 字符串 | 必须 | 请求URL |
method | 字符串 | 必须 | HTTP方法。 POST,PUT中任一个。 |
headers | 对象 | 必须 | 指定请求头对象。 未指定的时候,默认{}。 (例) {'Content-Type': 'application/json'} |
data | 对象 | 必须 | 请求里包含的数据。{ 'format': 向 proxy 上传数据时使用的格式, 'value': 上传的数据 }format 是字符串、只能指定 "RAW"。 value 是Blob型 (包括 File型) 的值。value的大小最多为 200MB。 |
successCallback | 函数 | 可省略 | 向Proxy处发送的请求,结束时执行的回调函数。 |
failureCallback | 函数 | 可省略 | 发往proxy API 的请求,失败时执行的回调函数。 |
返回值
省略参数 successCallback 时,返回 kintone.Promise 对象。
参考: 事件处理的写法
指定 successCallback 的时候,没有返回值。
例子
使用回调函数的记述方法
var data = { 'format': 'RAW', 'value': <some blob object> } kintone.proxy.upload('https://*****.***.net', 'POST', {}, data, function(body, status, headers) { //success console.log(status, JSON.parse(body), headers); }, function(error) { //error console.log(error); //显示proxy API的response body(字符串) });
使用kintone.Promise对象的记述方法
var data = { 'format': 'RAW', 'value': <some blob object> } kintone.proxy.upload('https://*****.***.net', 'POST', {}, data).then(function(args) { //success /* args[0] -> body(字符串) * args[1] -> status(数值) * args[2] -> headers(对象) */ console.log(args[1], JSON.parse(args[0]), args[2]); }, function(error) { //error console.log(error); //显示proxy API的response body(字符串) });
注意事項
使用url指定不存在的服务器时、应答返回状态码为「503」(DNS Cache Missing)的错误。
如您的环境设置了 IP 地址限制,那么使用此 JavaScript API 对同一域名的其他应用执行 kintone REST API 时,需要许可 kintone 的 IP 地址。
关于 IP 地址,请参考cybozu.cn使用的域和IP地址。
但是,这样的话就可以通过执行外部 API 的API来自由访问 kintone 环境,因此从安全角度来说,不推荐这样的做法。使用此 API 执行外部 API 时,外部的 API 不会自动发行原本会发行的 Cookie 。
当你发送的HTTP请求为POST / PUT时,由于header里“Content-Length”和“Transfer-Encoding”会在内部自动添加,因此用户在发起请求时无需手动设置它们,否则将导致出错。
对于可使用的 "Content-Type"没有限制。
限制事项
关于要执行的外部 API 的应答限制如下。
应答头部的上限是:最多 100行,1 行最大8192 bytes。
应答正文的上限是10MB。超过上限会报错。
应答正文仅可使用字符串。不可获取图片等二进制数据。
无法与使用自签名证书的服务器通信。
对象浏览器与操作环境中的 Web 浏览器(日文)相同。