Google Script - Hujung Awam REST API

Terakhir dikemas kini: 1 April 2025

Hujung awam REST API kami boleh diakses melalui permintaan HTTP yang mudah (sama seperti halaman web diminta melalui pelayar web), jadi klien API untuk mengimport data pasaran ke dalam Google Sheet boleh dilaksanakan dengan hanya beberapa baris kod Google Script.

Pemasangan

  1. 1

    Cipta Google Sheet baharu atau buka helaian sedia ada.

  2. 2

    Buka editor skrip melalui menu Sambungan -> Apps Script.

  3. 3

    Padamkan kod lalai yang ditunjukkan (contohnya, Pilih Semua kemudian Padam/Backspace).

  4. 4

    Salin/Tampal kod API Google Script (ditunjukkan di bawah) ke dalam editor skrip.

  5. 5

    Pilihan - Tambah sebarang fungsi tersuai tambahan yang anda perlukan (untuk memanggil hujung yang berbeza atau mengembalikan medan JSON yang berbeza, contohnya).

  6. 6

    Simpan Kod Google Script melalui ikon (Simpan projek).

    General_SaveIcon_10052020.png

Penggunaan

Fungsi KAPI_Public() bertanggungjawab untuk mencipta URL yang sesuai dan membuat permintaan HTTP kepada API. Fungsi KAPI_Public() boleh dipanggil secara langsung dengan memasukkan yang berikut (atau serupa bergantung pada hujung dan parameter) dalam sel Google Sheet:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Fungsi KAPI_Public() mengembalikan respons JSON asal daripada API, seperti yang berikut untuk contoh hujung Depth di atas:

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

Untuk meletakkan medan/nilai individu ke dalam sel berasingan dalam Google Sheet, fungsi tersuai tambahan boleh dipanggil untuk menghuraikan respons JSON, seperti contoh fungsi KAPI_Ticker() dan KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

yang akan memaparkan hasil yang serupa dengan yang berikut, di mana data akan dapat diakses oleh mana-mana fungsi Google Sheets standard (SUM, AVERAGE, COUNT, dll.):

API_GoogleSheetExample_10052020.png

Kod Google Script untuk Hujung Awam:

Fungsi Umum untuk disertakan bagi panggilan ke semua Hujung Awam:

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
}

Contoh Fungsi yang khusus untuk Hujung tertentu:

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
}

Untuk menggunakan skrip di atas, hanya tambahkan skrip generik pada skrip khusus hujung:

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
}

Pemisah perpuluhan dan ribuan yang ditunjukkan dalam artikel ini mungkin berbeza daripada format yang dipaparkan pada platform dagangan kami. Semak artikel kami tentang cara kami menggunakan titik dan koma untuk maklumat lanjut.

Perlu bantuan lebih lanjut?