Skrypt Google – publiczne punkty końcowe REST API

Ostatnia aktualizacja: 1 kwi 2025

Nasze publiczne punkty końcowe REST API są dostępne za pośrednictwem prostego żądania HTTP (tak jak strona internetowa jest żądana za pośrednictwem przeglądarki internetowej), więc klient API do importowania danych rynkowych do Arkusza Google może zostać zaimplementowany za pomocą zaledwie kilku linii kodu Google Script.

Instalacja

  1. 1

    Utwórz nowy Arkusz Google lub otwórz istniejący arkusz.

  2. 2

    Otwórz edytor skryptów za pomocą menu Rozszerzenia -> Apps Script.

  3. 3

    Usuń domyślny kod, który jest wyświetlany (na przykład Zaznacz wszystko, a następnie Usuń/Backspace).

  4. 4

    Skopiuj/wklej kod Google Script API (pokazany poniżej) do edytora skryptów.

  5. 5

    Opcjonalnie – Dodaj wszelkie dodatkowe funkcje niestandardowe, których potrzebujesz (na przykład do wywoływania różnych punktów końcowych lub zwracania różnych pól JSON).

  6. 6

    Zapisz kod Google Script za pomocą ikony (Zapisz projekt).

    General_SaveIcon_10052020.png

Użycie

Funkcja KAPI_Public() odpowiada za tworzenie odpowiedniego adresu URL i wykonywanie żądania HTTP do API. Funkcję KAPI_Public() można wywołać bezpośrednio, wpisując następujące (lub podobne, w zależności od punktu końcowego i parametrów) w komórce Arkusza Google:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funkcja KAPI_Public() zwraca oryginalną odpowiedź JSON z API, taką jak poniższa dla powyższego przykładu punktu końcowego Głębokość:

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 umieścić poszczególne pola/wartości w oddzielnych komórkach Arkusza Google, można wywołać dodatkowe funkcje niestandardowe do parsowania odpowiedzi JSON, takie jak przykładowe funkcje KAPI_Ticker() i KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

co wyświetliłoby wyniki podobne do poniższych, gdzie dane byłyby dostępne dla dowolnych standardowych funkcji Arkuszy Google (SUMA, ŚREDNIA, LICZ, itp.):

API_GoogleSheetExample_10052020.png

Kod Google Script dla publicznych punktów końcowych:

Ogólna funkcja do uwzględnienia dla wywołań wszystkich publicznych punktów końcowych:

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
}

Przykłady funkcji specyficznych dla konkretnego punktu końcowego:

Głębokość:

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
}

Aby użyć powyższych skryptów, wystarczy dołączyć ogólny skrypt do skryptu specyficznego dla punktu końcowego:

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
}

Separatory dziesiętne i tysięcy pokazane w tym artykule mogą różnić się od formatów wyświetlanych na naszych platformach handlowych. Zapoznaj się z naszym artykułem na temat używania kropek i przecinków, aby uzyskać więcej informacji.

Potrzebujesz więcej pomocy?