Google Script - REST API offentlige endepunkter

Sidst opdateret: 1. april 2025

Vores REST API offentlige endepunkter er tilgængelige via en simpel HTTP-anmodning (ligesom en webside anmodes via en webbrowser), så en API-klient til at importere markedsdata til et Google Sheet kan implementeres med blot et par linjer Google Script-kode.

Installation

  1. 1

    Opret et nyt Google Sheet eller åbn et eksisterende ark.

  2. 2

    Åbn scripteditoren via menuen Udvidelser -> Apps Script.

  3. 3

    Slet den viste standardkode (f.eks. Vælg alt og derefter Slet/Tilbage).

  4. 4

    Kopiér/indsæt Google Script API-koden (vist nedenfor) i scripteditoren.

  5. 5

    Valgfrit – Tilføj eventuelle yderligere brugerdefinerede funktioner, du har brug for (f.eks. for at kalde forskellige endepunkter eller returnere forskellige JSON-felter).

  6. 6

    Gem Google Script-koden via  ikonet (Gem projekt).

    General_SaveIcon_10052020.png

Anvendelse

Funktionen KAPI_Public() er ansvarlig for at oprette den passende URL og foretage HTTP-anmodningen til API'en. Funktionen KAPI_Public() kan kaldes direkte ved at indtaste følgende (eller lignende afhængigt af endepunktet og parametrene) i en Google Sheet-celle:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funktionen KAPI_Public() returnerer den originale JSON-respons fra API'en, såsom følgende for ovenstående Depth endepunktseksempel:

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 at placere de individuelle felter/værdier i separate celler i Google Sheet kan yderligere brugerdefinerede funktioner kaldes for at parse JSON-responsen, såsom eksemplerne KAPI_Ticker() og KAPI_Depth() funktioner:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

hvilket ville vise resultaterne svarende til følgende, hvor dataene ville være tilgængelige for enhver af de standard Google Sheets-funktioner (SUM, AVERAGE, COUNT osv.):

API_GoogleSheetExample_10052020.png

Google Script-kode for offentlige endepunkter:

Generel funktion, der skal inkluderes for kald 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å funktioner, der er specifikke 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 at bruge ovenstående scripts skal du blot tilføje det generiske script til det endepunktsspecifikke script:

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
}

De decimal- og tusindtalsseparatorer, der vises i denne artikel, kan afvige fra de formater, der vises på vores handelsplatforme. Læs vores artikel om, hvordan vi bruger punkter og kommaer for mere information.

Har du brug for mere hjælp?