Google Script - REST API nyilvános végpontok

Utolsó frissítés: 2025. április 1.

A REST API nyilvános végpontjaink egy egyszerű HTTP kéréssel érhetők el (ahogyan egy weboldal is lekérhető egy webböngészőn keresztül), így egy API kliens a piaci adatok Google Táblázatba importálásához mindössze néhány sor Google Script kóddal megvalósítható.

Telepítés

  1. 1

    Hozzon létre egy új Google Táblázatot, vagy nyisson meg egy meglévőt.

  2. 2

    Nyissa meg a szkriptszerkesztőt az Extensions -> Apps Script menüpont segítségével.

  3. 3

    Törölje a megjelenő alapértelmezett kódot (például Összes kijelölése, majd Törlés/Backspace).

  4. 4

    Másolja/illessze be a Google Script API kódot (lentebb látható) a szkriptszerkesztőbe.

  5. 5

    Opcionális – Adjon hozzá további egyéni függvényeket, amelyekre szüksége van (például különböző végpontok hívásához vagy különböző JSON mezők visszaadásához).

  6. 6

    Mentse a Google Script kódot a (Projekt mentése) ikon segítségével.

    General_SaveIcon_10052020.png

Használat

A KAPI_Public() függvény felelős a megfelelő URL létrehozásáért és a HTTP kérés elküldéséért az API-nak. A KAPI_Public() függvény közvetlenül meghívható a következő (vagy hasonló, a végponttól és a paraméterektől függően) beírásával egy Google Táblázat cellájába:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

A KAPI_Public() függvény visszaadja az eredeti JSON választ az API-tól, például a fenti Depth végpont példájához a következőt:

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

Az egyes mezők/értékek külön cellákba helyezéséhez a Google Táblázatban további egyéni függvények hívhatók meg a JSON válasz elemzésére, mint például a KAPI_Ticker() és KAPI_Depth() függvények:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

amely a következőhöz hasonló eredményeket jelenítene meg, ahol az adatok bármely standard Google Táblázatok függvény (SUM, AVERAGE, COUNT stb.) számára elérhetők lennének:

API_GoogleSheetExample_10052020.png

Google Script kód nyilvános végpontokhoz:

Általános függvény, amelyet minden nyilvános végpont hívásához mellékelni kell:

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éldák olyan függvényekre, amelyek egy adott végponthoz specifikusak:

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
}

A fenti szkriptek használatához egyszerűen fűzze hozzá az általános szkriptet a végpontspecifikus szkripthez:

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
}

Az ebben a cikkben bemutatott tizedes- és ezreselválasztók eltérhetnek a kereskedési platformjainkon megjelenített formátumoktól. További információért tekintse meg cikkünket arról, hogyan használjuk a pontokat és vesszőket.

További segítségre van szükséged?