Google Script - offentlige REST API-endepunkter

Sist oppdatert: 1. april 2025

Våre offentlige REST API-endepunkter er tilgjengelige via en enkel HTTP-forespørsel (akkurat som en nettside forespørres via en nettleser), slik at en API-klient for å importere markedsdata til et Google Regneark kan implementeres med bare noen få linjer med Google Script-kode.

Installasjon

  1. 1

    Opprett et nytt Google Regneark eller åpne et eksisterende regneark.

  2. 2

    Åpne skriptredigeringsprogrammet via Extensions -> Apps Script-menyen.

  3. 3

    Slett standardkoden som vises (Merk alt, deretter Slett/Tilbake, for eksempel).

  4. 4

    Kopier/lim inn Google Script API-koden (vist nedenfor) i skriptredigeringsprogrammet.

  5. 5

    Valgfritt – Legg til eventuelle ytterligere egendefinerte funksjoner du trenger (for å kalle forskjellige endepunkter eller returnere forskjellige JSON-felt, for eksempel).

  6. 6

    Lagre Google Script-koden via (Lagre prosjekt)-ikonet.

    General_SaveIcon_10052020.png

Bruk

Funksjonen KAPI_Public() er ansvarlig for å opprette den passende URL-en og sende HTTP-forespørselen til API-et. Funksjonen KAPI_Public() kan kalles direkte ved å skrive inn følgende (eller lignende, avhengig av endepunktet og parameterne) i en Google Regneark-celle:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funksjonen KAPI_Public() returnerer det opprinnelige JSON-svaret fra API-et, slik som følgende for eksempelet med Depth-endepunktet ovenfor:

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

For å plassere de individuelle feltene/verdiene i separate celler i Google Regneark, kan ytterligere egendefinerte funksjoner kalles for å analysere JSON-svaret, slik som eksempelfunksjonene KAPI_Ticker() og KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

som ville vise resultatene lignende følgende, hvor dataene ville være tilgjengelige for alle standard Google Regneark-funksjoner (SUM, AVERAGE, COUNT, osv.):

API_GoogleSheetExample_10052020.png

Google Script-kode for offentlige endepunkter:

Generell funksjon som skal inkluderes for kall til alle offentlige endepunkter:

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
}

Eksempler på funksjoner som er spesifikke for et bestemt endepunkt:

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
}

For å bruke skriptene ovenfor, legger du ganske enkelt til det generiske skriptet til det endepunktspesifikke skriptet:

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
}

Desimal- og tusenskilletegnene som vises i denne artikkelen, kan avvike fra formatene som vises på våre handelsplattformer. Se vår artikkel om hvordan vi bruker punktum og komma for mer informasjon.

Trenger du mer hjelp?