Google Script – veřejné koncové body REST API

Naposledy aktualizováno: 1. dubna 2025

Naše veřejné koncové body REST API jsou přístupné prostřednictvím jednoduchého HTTP požadavku (stejně jako je webová stránka vyžádána webovým prohlížečem), takže klienta API pro import tržních dat do Google Sheetu lze implementovat pomocí několika řádků kódu Google Script.

Instalace

  1. 1

    Vytvořte nový Google Sheet nebo otevřete existující list.

  2. 2

    Otevřete editor skriptů přes menu Rozšíření -> Apps Script.

  3. 3

    Odstraňte zobrazený výchozí kód (například Vybrat vše a poté Smazat/Backspace).

  4. 4

    Zkopírujte/vložte kód Google Script API (zobrazený níže) do editoru skriptů.

  5. 5

    Volitelné – Přidejte jakékoli další vlastní funkce, které potřebujete (například pro volání různých koncových bodů nebo vrácení různých polí JSON).

  6. 6

    Uložte kód Google Script pomocí ikony (Uložit projekt).

    General_SaveIcon_10052020.png

Použití

Funkce KAPI_Public() je zodpovědná za vytvoření příslušné URL a provedení HTTP požadavku na API. Funkci KAPI_Public() lze volat přímo zadáním následujícího (nebo podobného v závislosti na koncovém bodu a parametrech) do buňky Google Sheetu:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funkce KAPI_Public() vrací původní JSON odpověď z API, například následující pro výše uvedený příklad koncového bodu Depth:

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

Aby bylo možné umístit jednotlivá pole/hodnoty do samostatných buněk v Google Sheetu, lze volat další vlastní funkce pro parsování JSON odpovědi, jako jsou například funkce KAPI_Ticker() a KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

což by zobrazilo výsledky podobné následujícímu, kde by data byla přístupná kterékoli ze standardních funkcí Google Sheets (SUM, AVERAGE, COUNT atd.):

API_GoogleSheetExample_10052020.png

Kód Google Script pro veřejné koncové body:

Obecná funkce, která má být zahrnuta pro volání všech veřejných koncových bodů:

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
}

Příklady funkcí, které jsou specifické pro konkrétní koncový bod:

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
}

Chcete-li použít výše uvedené skripty, jednoduše připojte obecný skript ke skriptu specifickému pro koncový bod:

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
}

Desetinné a tisícové oddělovače zobrazené v tomto článku se mohou lišit od formátů zobrazených na našich obchodních platformách. Další informace naleznete v našem článku o tom, jak používáme tečky a čárky.

Potřebujete další pomoc?