Google Script - REST API openbare eindpunten

Laatst bijgewerkt: 1 apr 2025

Onze openbare REST API-eindpunten zijn toegankelijk via een eenvoudige HTTP-aanvraag (net zoals een webpagina wordt aangevraagd via een webbrowser), dus een API-client om marktgegevens in een Google Sheet te importeren kan worden geïmplementeerd met slechts een paar regels Google Script-code.

Installatie

  1. 1

    Maak een nieuwe Google Sheet of open een bestaande sheet.

  2. 2

    Open de scripteditor via het menu Extensies -> Apps Script.

  3. 3

    Verwijder de standaardcode die wordt weergegeven (bijvoorbeeld Alles selecteren en vervolgens Verwijderen/Backspace).

  4. 4

    Kopieer/plak de Google Script API-code (hieronder weergegeven) in de scripteditor.

  5. 5

    Optioneel - Voeg eventuele aanvullende aangepaste functies toe die u nodig hebt (bijvoorbeeld om verschillende eindpunten aan te roepen of verschillende JSON-velden te retourneren).

  6. 6

    Sla de Google Script-code op via het pictogram (Project opslaan).

    General_SaveIcon_10052020.png

Gebruik

De functie KAPI_Public() is verantwoordelijk voor het aanmaken van de juiste URL en het uitvoeren van de HTTP-aanvraag naar de API. De functie KAPI_Public() kan direct worden aangeroepen door het volgende (of iets soortgelijks, afhankelijk van het eindpunt en de parameters) in een Google Sheet-cel in te voeren:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

De functie KAPI_Public() retourneert de oorspronkelijke JSON-respons van de API, zoals het volgende voor het bovenstaande Depth-eindpuntvoorbeeld:

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

Om de individuele velden/waarden in afzonderlijke cellen binnen de Google Sheet te plaatsen, kunnen aanvullende aangepaste functies worden aangeroepen om de JSON-respons te parseren, zoals de voorbeeld KAPI_Ticker()- en KAPI_Depth()-functies:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

wat de resultaten vergelijkbaar met het volgende zou weergeven, waarbij de gegevens toegankelijk zouden zijn voor alle standaard Google Sheets-functies (SOM, GEMIDDELDE, AANTAL, enz.):

API_GoogleSheetExample_10052020.png

Google Script-code voor openbare eindpunten:

Algemene functie die moet worden opgenomen voor aanroepen naar alle openbare eindpunten:

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
}

Voorbeelden van functies die specifiek zijn voor een bepaald eindpunt:

Diepte:

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
}

Om de bovenstaande scripts te gebruiken, voegt u eenvoudigweg het generieke script toe aan het eindpuntspecifieke 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 decimaal- en duizendtalscheidingstekens die in dit artikel worden weergegeven, kunnen afwijken van de formaten die op onze handelsplatforms worden getoond. Lees ons artikel over hoe we punten en komma's gebruiken voor meer informatie.

Meer hulp nodig?