Google Script - puncte finale publice REST API

Ultima actualizare: 1 aprilie 2025

Punctele noastre finale publice REST API sunt accesibile printr-o simplă solicitare HTTP (la fel cum o pagină web este solicitată printr-un browser web), astfel încât un client API pentru a importa date de piață într-o Foaie Google poate fi implementat cu doar câteva linii de cod Google Script.

Instalare

  1. 1

    Creați o Foaie Google nouă sau deschideți o foaie existentă.

  2. 2

    Deschideți editorul de scripturi prin meniul Extensii -> Apps Script.

  3. 3

    Ștergeți codul implicit afișat (de exemplu, Selectați tot, apoi Ștergeți/Backspace).

  4. 4

    Copiați/Lipiți codul API Google Script (afișat mai jos) în editorul de scripturi.

  5. 5

    Opțional - Adăugați orice funcții personalizate suplimentare de care aveți nevoie (pentru a apela diferite puncte finale sau a returna diferite câmpuri JSON, de exemplu).

  6. 6

    Salvați codul Google Script prin pictograma (Salvați proiectul).

    General_SaveIcon_10052020.png

Utilizare

Funcția KAPI_Public() este responsabilă pentru crearea URL-ului corespunzător și efectuarea solicitării HTTP către API. Funcția KAPI_Public() poate fi apelată direct prin introducerea următoarelor (sau similar, în funcție de punctul final și parametri) într-o celulă a unei Foi Google:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Funcția KAPI_Public() returnează răspunsul JSON original de la API, cum ar fi următorul pentru exemplul de punct final Depth de mai sus:

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

Pentru a plasa câmpurile/valorile individuale în celule separate în Foaia Google, pot fi apelate funcții personalizate suplimentare pentru a analiza răspunsul JSON, cum ar fi funcțiile exemplu KAPI_Ticker() și KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

care ar afișa rezultatele similar cu următoarele, unde datele ar fi accesibile oricărei funcții standard Google Sheets (SUM, AVERAGE, COUNT, etc.):

API_GoogleSheetExample_10052020.png

Cod Google Script pentru punctele finale publice:

Funcție generală de inclus pentru apelurile către toate punctele finale publice:

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
}

Exemple de funcții specifice unui anumit punct final:

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
}

Pentru a utiliza scripturile de mai sus, pur și simplu adăugați scriptul generic la scriptul specific punctului final:

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
}

Separatorii zecimali și de mii afișați în acest articol pot diferi de formatele afișate pe platformele noastre de tranzacționare. Consultați articolul nostru despre cum utilizăm punctele și virgulele pentru mai multe informații.

Ai nevoie de mai mult ajutor?