Script de Google - Puntos finales públicos de la API REST

Última actualización: 1 abr 2025

Nuestros puntos finales públicos de la API REST son accesibles a través de una simple solicitud HTTP (al igual que se solicita una página web a través de un navegador web), por lo que un cliente de API para importar datos de mercado a una Hoja de cálculo de Google se puede implementar con solo unas pocas líneas de código de Google Script.

Instalación

  1. 1

    Cree una nueva Hoja de cálculo de Google o abra una hoja existente.

  2. 2

    Abra el editor de scripts a través del menú Extensiones -> Apps Script.

  3. 3

    Elimine el código predeterminado que se muestra (por ejemplo, Seleccionar todo y luego Eliminar/Retroceso).

  4. 4

    Copie/Pegue el código de la API de Google Script (que se muestra a continuación) en el editor de scripts.

  5. 5

    Opcional: añada cualquier función personalizada adicional que necesite (por ejemplo, para llamar a diferentes puntos finales o devolver diferentes campos JSON).

  6. 6

    Guarde el código de Google Script a través del icono (Guardar proyecto).

    General_SaveIcon_10052020.png

Uso

La función KAPI_Public() es responsable de crear la URL adecuada y realizar la solicitud HTTP a la API. La función KAPI_Public() se puede llamar directamente introduciendo lo siguiente (o similar, dependiendo del punto final y los parámetros) en una celda de Google Sheet:

bash

Bash

=KAPI_Ticker("XBTUSD,ETHEUR,LTCUSD,XDGXBT,XDGUSD")

=KAPI_Depth("XDGUSD", "5")

La función KAPI_Public() devuelve la respuesta JSON original de la API, como la siguiente para el ejemplo de punto final Depth anterior:

bash

Bash

{"error":[],"result":{"XETHZUSD":{"asks":[["231.74000","4.386",1583402326],["231.75000","27.337",1583402277],["231.76000","5.887",1583402311],["231.79000","36.280",1583402334],["231.80000","50.000",1583402299]],"bids":[["231.70000","18.534",1583402335],["231.67000","22.109",1583402335],["231.61000","7.930",1583402335],["231.60000","33.841",1583402335],["231.54000","115.017",1583402334]]}}}

Para colocar los campos/valores individuales en celdas separadas dentro de la Hoja de cálculo de Google, se pueden llamar funciones personalizadas adicionales para analizar la respuesta JSON, como las funciones de ejemplo KAPI_Ticker() y KAPI_Depth():

bash

Bash

=KAPI_Ticker("XBTUSD,ETHEUR,LTCUSD,XDGXBT,XDGUSD")

=KAPI_Depth("XDGUSD", "5")

lo que mostraría los resultados de forma similar a lo siguiente, donde los datos serían accesibles para cualquiera de las funciones estándar de Google Sheets (SUMA, PROMEDIO, CONTAR, etc.):

API_GoogleSheetExample_10052020.png

Código de Google Script para puntos finales públicos:

Función general que se incluirá para las llamadas a todos los puntos finales públicos:

bash

Bash

function KAPI_Public(endpoint, parameters) {
  http_response = UrlFetchApp.fetch(
    'https://api.kraken.com/0/public/' + endpoint + '?' + parameters
  )
  api_data = http_response.getContentText()
  return api_data
}

Ejemplos de funciones específicas para un punto final en particular:

Profundidad:

bash

Bash

function KAPI_Depth(currency_pair, depth) {
  api_data = JSON.parse(
    KAPI_Public("Depth", "pair=" + currency_pair + "&count=" + depth)
  )
  api_results = new Array()
  for (count = 0; count < parseInt(depth); count++) {
    api_results.push([
      api_data['result'][currency_pair]['bids'][count][0], 
      api_data['result'][currency_pair]['bids'][count][1], 
      api_data['result'][currency_pair]['asks'][count][0], 
      api_data['result'][currency_pair]['asks'][count][1]
    ])
  }
  return api_results
}

Ticker:

bash

Bash

function KAPI_Ticker(currency_pairs) {
  api_data = JSON.parse(
    KAPI_Public("Ticker", "pair=" + currency_pairs)
  )
  api_results = new Array()
  for (name in api_data['result']) {
    api_results.push([
      name, 
      api_data['result'][name]['a'][0], 
      api_data['result'][name]['a'][2], 
      api_data['result'][name]['b'][0], 
      api_data['result'][name]['b'][2], 
      api_data['result'][name]['c'][0], 
      api_data['result'][name]['c'][1]
    ])
  }
  return api_results
}

Para usar los scripts anteriores, simplemente añada el script genérico al script específico del punto final:

bash

Bash

function KAPI_Public(endpoint, parameters) {
  http_response = UrlFetchApp.fetch(
    'https://api.kraken.com/0/public/' + endpoint + '?' + parameters
  )
  api_data = http_response.getContentText()
  return api_data
}

function KAPI_Depth(currency_pair, depth) {
  api_data = JSON.parse(
    KAPI_Public("Depth", "pair=" + currency_pair + "&count=" + depth)
  )
  api_results = new Array()
  for (count = 0; count < parseInt(depth); count++) {
    api_results.push([
      api_data['result'][currency_pair]['bids'][count][0], 
      api_data['result'][currency_pair]['bids'][count][1], 
      api_data['result'][currency_pair]['asks'][count][0], 
      api_data['result'][currency_pair]['asks'][count][1]
    ])
  }
  return api_results
}

Los separadores de decimales y miles que se muestran en este artículo pueden diferir de los formatos mostrados en nuestras plataformas de trading. Revise nuestro artículo sobre cómo usamos puntos y comas para obtener más información.

¿Necesita más ayuda?