Google Script - Endpoint pubblici REST API

Ultimo aggiornamento: 1 apr 2025

I nostri endpoint pubblici REST API sono accessibili tramite una semplice richiesta HTTP (proprio come una pagina web viene richiesta tramite un browser web), quindi un client API per importare i dati di mercato in un foglio Google può essere implementato con poche righe di codice Google Script.

Installazione

  1. 1

    Crei un nuovo foglio Google o apra un foglio esistente.

  2. 2

    Apra l'editor di script tramite il menu Estensioni -> Apps Script.

  3. 3

    Elimini il codice predefinito visualizzato (ad esempio, Seleziona tutto e poi Elimina/Backspace).

  4. 4

    Copi/incolli il codice API di Google Script (mostrato di seguito) nell'editor di script.

  5. 5

    Opzionale - Aggiunga eventuali funzioni personalizzate aggiuntive di cui ha bisogno (ad esempio, per chiamare diversi endpoint o restituire diversi campi JSON).

  6. 6

    Salvi il codice Google Script tramite l'icona (Salva progetto).

    General_SaveIcon_10052020.png

Utilizzo

La funzione KAPI_Public() è responsabile della creazione dell'URL appropriato e dell'esecuzione della richiesta HTTP all'API. La funzione KAPI_Public() può essere chiamata direttamente inserendo quanto segue (o simile a seconda dell'endpoint e dei parametri) in una cella di un foglio Google:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

La funzione KAPI_Public() restituisce la risposta JSON originale dall'API, come la seguente per l'esempio di endpoint Depth sopra riportato:

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]]}}}

Per inserire i singoli campi/valori in celle separate all'interno del foglio Google, è possibile chiamare funzioni personalizzate aggiuntive per analizzare la risposta JSON, come le funzioni di esempio KAPI_Ticker() e KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

che visualizzerebbe i risultati in modo simile a quanto segue, dove i dati sarebbero accessibili a qualsiasi funzione standard di Google Sheets (SUM, AVERAGE, COUNT, ecc.):

API_GoogleSheetExample_10052020.png

Codice Google Script per gli endpoint pubblici:

Funzione generale da includere per le chiamate a tutti gli endpoint pubblici:

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
}

Esempi di funzioni specifiche per un particolare endpoint:

Depth:

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
}

Per utilizzare gli script di cui sopra, è sufficiente aggiungere lo script generico allo script specifico dell'endpoint:

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
}

I separatori decimali e delle migliaia mostrati in questo articolo potrebbero differire dai formati visualizzati sulle nostre piattaforme di trading. Consulti il nostro articolo su come utilizziamo punti e virgole per maggiori informazioni.

Hai ancora bisogno di aiuto?