Google Script - Offentliga REST API-slutpunkter

Senast uppdaterad: 1 april 2025

Våra offentliga REST API-slutpunkter är tillgängliga via en enkel HTTP-förfrågan (precis som en webbsida begärs via en webbläsare), så en API-klient för att importera marknadsdata till ett Google Sheet kan implementeras med bara några rader Google Script-kod.

Installation

  1. 1

    Skapa ett nytt Google Sheet eller öppna ett befintligt ark.

  2. 2

    Öppna skriptredigeraren via menyn Tillägg -> Apps Script.

  3. 3

    Ta bort standardkoden som visas (till exempel Markera allt och sedan Ta bort/Backsteg).

  4. 4

    Kopiera/klistra in Google Script API-koden (visas nedan) i skriptredigeraren.

  5. 5

    Valfritt – Lägg till ytterligare anpassade funktioner som du behöver (till exempel för att anropa olika slutpunkter eller returnera olika JSON-fält).

  6. 6

    Spara Google Script-koden via ikonen (Spara projekt).

    General_SaveIcon_10052020.png

Användning

Funktionen KAPI_Public() ansvarar för att skapa den lämpliga URL:en och göra HTTP-förfrågan till API:et. Funktionen KAPI_Public() kan anropas direkt genom att ange följande (eller liknande beroende på slutpunkten och parametrarna) i en Google Sheet-cell:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funktionen KAPI_Public() returnerar det ursprungliga JSON-svaret från API:et, till exempel följande för exemplet med Depth-slutpunkten ovan:

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

För att placera de enskilda fälten/värdena i separata celler i Google Sheet kan ytterligare anpassade funktioner anropas för att tolka JSON-svaret, till exempel funktionerna KAPI_Ticker() och KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

vilket skulle visa resultaten liknande följande, där data skulle vara tillgänglig för alla standardfunktioner i Google Sheets (SUM, AVERAGE, COUNT, etc.):

API_GoogleSheetExample_10052020.png

Google Script-kod för offentliga slutpunkter:

Allmän funktion som ska inkluderas för anrop till alla offentliga slutpunkter:

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
}

Exempel på funktioner som är specifika för en viss slutpunkt:

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
}

För att använda skripten ovan, lägg helt enkelt till det generiska skriptet till det slutpunktsspecifika 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
}

Decimal- och tusentalsavgränsarna som visas i denna artikel kan skilja sig från de format som visas på våra handelsplattformar. Läs vår artikel om hur vi använder punkter och kommatecken för mer information.

Behöver du mer hjälp?