Скрипт Google – публічні кінцеві точки REST API

Останнє оновлення: 1 квіт. 2025 р.

Наші публічні кінцеві точки REST API доступні за допомогою простого HTTP-запиту (так само, як веб-сторінка запитується через веб-браузер), тому клієнт API для імпорту ринкових даних у Google Таблицю можна реалізувати лише кількома рядками коду Google Script.

Встановлення

  1. 1

    Створіть нову Google Таблицю або відкрийте наявну.

  2. 2

    Відкрийте редактор скриптів через меню Розширення -> Apps Script.

  3. 3

    Видаліть код за замовчуванням, який відображається (наприклад, Вибрати все, потім Видалити/Backspace).

  4. 4

    Скопіюйте/вставте код Google Script API (показано нижче) у редактор скриптів.

  5. 5

    Необов'язково - Додайте будь-які додаткові користувацькі функції, які вам потрібні (наприклад, для виклику різних кінцевих точок або повернення різних полів JSON).

  6. 6

    Збережіть код Google Script за допомогою значка (Зберегти проєкт).

    General_SaveIcon_10052020.png

Використання

Функція KAPI_Public() відповідає за створення відповідної URL-адреси та виконання HTTP-запиту до API. Функцію KAPI_Public() можна викликати безпосередньо, ввівши наступне (або подібне, залежно від кінцевої точки та параметрів) у клітинку Google Таблиці:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Функція KAPI_Public() повертає оригінальну відповідь JSON від API, наприклад, наступну для наведеного вище прикладу кінцевої точки 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]]}}}

Щоб розмістити окремі поля/значення в окремих клітинках Google Таблиці, можна викликати додаткові користувацькі функції для аналізу відповіді JSON, наприклад, функції KAPI_Ticker() та KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

що відобразить результати, подібні до наступних, де дані будуть доступні для будь-яких стандартних функцій Google Таблиць (SUM, AVERAGE, COUNT тощо):

API_GoogleSheetExample_10052020.png

Код Google 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
}

Приклади функцій, що є специфічними для певної кінцевої точки:

Глибина:

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
}

Тікер:

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
}

Щоб використовувати наведені вище скрипти, просто додайте загальний скрипт до скрипта, специфічного для кінцевої точки:

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
}

Десяткові роздільники та роздільники тисяч, показані в цій статті, можуть відрізнятися від форматів, що відображаються на наших торгових платформах. Перегляньте нашу статтю про те, як ми використовуємо крапки та коми для отримання додаткової інформації.

Потрібна додаткова допомога?