Carga de archivos proxy de complemento

Carga de archivos proxy de plug-ins - kintone.plugin.app.proxy.upload()

Cargue un archivo fuera de Kintone desde un complemento.
Si tu API de REST externa requiere información confidencial, como claves secretas, usa la API Set Config for proxy() y la API Get Config for proxy() para guardar y obtener estos datos para la API de REST externa.

Función

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

Parámetros

PARÁMETRO TIPO OBLIGATORIO DESCRIPCIÓN
pluginId Cuerda El ID del complemento que ejecutará la API.
url Cuerda La dirección URL de la solicitud.
method Cuerda El método HTTP. Especifique una de las siguientes opciones: POST / PUT.
headers Objeto Especifique el encabezado de la solicitud como un objeto. Para ignorar este parámetro, ingrese {}. Muestra:{'Content-Type': 'application/json'}
data Objeto Los datos que se enviarán en la solicitud.
{ 'format': format to be uploaded to the external service. 'value': data to be uploaded }
Para formato, solo puede especificar la cadena "RAW".
Para valor, especifique el valor del tipo de blob (incluido el tipo de archivo). El tamaño máximo es de 200 MB.
successCallback Función Opcional La función de devolución de llamada que se ejecutará cuando finalice la solicitud al servicio externo. Recibirá el cuerpo de la respuesta (cadena), el código de estado (número) y el encabezado de la respuesta (objeto) como parámetros del servicio externo.
Si se ignora este parámetro, se crea un tono de kinton. Se devolverá un objeto de promesa que se puede cumplir con una matriz que contenga un cuerpo de respuesta (cadena), un código de estado (número) y un encabezado de respuesta (objeto).
failureCallback Función Opcional La función de devolución de llamada que se ejecutará cuando se produzca un error en la solicitud de API al servicio externo. Recibirá el cuerpo de la respuesta (cadena) como parámetro del servicio externo.
Si se ignora este parámetro, se crea un tono de kinton. Se devolverá un objeto de promesa que se puede rechazar con el cuerpo de respuesta (cadena) de esta API.

Respuesta

Un kintone.Promise object se devolverá si el objeto successCallback o failureCallback se ignoran los parámetros. De lo contrario, no habrá respuesta.

Páginas disponibles

Este método se puede utilizar en las siguientes páginas:

Páginas de escritorio:

  • Lista de registros
  • Detalles del registro
  • Creación de registros
  • Grabar Editar
  • Grabar impresión
  • Gráfico
  • Importación de archivos
  • Exportación de archivos

Páginas móviles:

  • Lista de registros
  • Detalles del registro
  • Creación de registros
  • Grabar Editar

Solicitud de muestra

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
var data = {
  'format': 'RAW',
  'value': '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://api.example.com', 'POST', {}, data, function(body, status, headers) {
  // success
  console.log(status, JSON.parse(body), headers);
}, function(error) {
  console.log(error); // Display the response body (string) from the proxy API
});

Solicitud de ejemplo mediante promesas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
var data = {
  'format': 'RAW',
  'value': '<some blob object>'
};

kintone.plugin.app.proxy.upload('mjjfipoklghomcgafnajfibfgllhpocm', 'https://api.example.com', 'POST', {}, data).then(function(args) {
  // success
  /*  args[0] -> body(String)
     *  args[1] -> status(Number)
     *  args[2] -> headers(Object)
     */
  console.log(args[1], JSON.parse(args[0]), args[2]);
}, function(error) {
  console.log(error); // Display the response body (string) from the proxy API
});

Limitaciones

  • Los navegadores compatibles son: Últimas versiones de Mozilla Firefox, Google Chrome, Safari, iOS Safari y Android Chrome.

Notas sobre los datos guardados utilizados con Kintone Plug-in Proxy

El encabezado de solicitud enviado cuando se usa el proxy de complemento de Kintone

El encabezado de la solicitud que se enviará es el contenido del encabezado de la solicitud especificado en el proxy del complemento de Kintone más los datos guardados del complemento que se guardaron con setProxyConfig().

Ejemplo:
Si {k1: 'v1'} se especificó en el encabezado de solicitud para setProxyConfig() y {k2: 'v2'} se especificó en el encabezado de la solicitud para el proxy de complemento de Kintone, el encabezado de la solicitud se convertirá en {k1: 'v1', k2: 'v2'} .

Los datos enviados al usar Kintone Plug-in Proxy

Cuando el método HTTP es POST/PUT, los datos enviados dependerán del formato de los datos.
Si el formato de datos es un objeto, se enviarán los datos especificados en el proxy del plug-in de Kintone más los datos guardados del plug-in que se guardaron con setProxyConfig().
Si el formato de datos es una cadena, solo se enviarán los datos especificados en el proxy del complemento de Kintone.

Cuando el método HTTP es GET/DELETE, los datos del plug-in guardados con setProxyConfig() se agregarán como una cadena de consulta al final del parámetro url especificado del proxy del plug-in de Kintone.
Si "?" no está incluido en el parámetro url especificado, también se agregará.

Ejemplo:
Si {k1: 'v1', k2: 'v2'} se especificó en los datos de setProxyConfig() y 'https://api.github.com?k=v' se especificó en la url de Kintone Plug-in Proxy, la url se convertirá en 'https://api.github.com?k=v&k1=v1&k2=v2'

Cuando dos configuraciones guardadas tienen las mismas teclas

Si se utiliza setProxyConfig() para guardar dos configuraciones diferentes que usan las mismas claves con nombre, la configuración con la URL que más coincida con la URL especificada en el proxy del complemento de Kintone tendrá prioridad.

Ejemplo:
Si setProxyConfig() se usa para guardar dos configuraciones diferentes como se muestra a continuación,

1
2
url: 'https://api.github.com'
headers:  {k1: 'v1', k2: 'v2'}

y

1
2
url: 'https://api.github.com/'
headers: {k2: 'v2-1', k3: 'v3'}

entonces, si el proxy del complemento de Kintone se usa con la URL como 'https://api.github.com/' , el encabezado de la solicitud se convertirá en

1
{k1: 'v1', k2: 'v2-1', k3: 'v3'}

Cuando una configuración guardada y el proxy del plug-in de Kintone tienen las mismas teclas

Como se explica en las descripciones de los parámetros de la tabla de setProxyConfig(), si las claves de la configuración guardada utilizan las mismas claves con nombre que las del proxy del plug-in de Kintone, las claves guardadas tendrán prioridad.
Si el método HTTP es GET/DELETE, no se comprueba la superposición de claves.

Ejemplo:
Si se usa setProxyConfig() para guardar la configuración como se muestra a continuación,

1
headers: {k1: 'v1', k2: 'v2'}

y Kintone Plug-in Proxy se utiliza con

1
headers: {k2: 'v2-1', k3: 'v3'}

Entonces, en este caso, ambos encabezados contienen el valor K2, pero la configuración guardada tendrá prioridad, por lo que el encabezado de la solicitud se convertirá en

1
{k1: 'v1', k2: 'v2', k3: 'v3'}