Google Script - Điểm cuối công khai của REST API

Cập nhật lần cuối: 1 thg 4, 2025

Các điểm cuối công khai của REST API của chúng tôi có thể truy cập được thông qua một yêu cầu HTTP đơn giản (giống như cách một trang web được yêu cầu qua trình duyệt web), vì vậy một ứng dụng khách API để nhập dữ liệu thị trường vào Google Sheet có thể được triển khai chỉ với vài dòng mã Google Script.

Cài đặt

  1. 1

    Tạo một Google Sheet mới hoặc mở một trang tính hiện có.

  2. 2

    Mở trình chỉnh sửa tập lệnh thông qua menu Tiện ích mở rộng -> Apps Script.

  3. 3

    Xóa mã mặc định được hiển thị (ví dụ: Chọn tất cả sau đó Xóa/Backspace).

  4. 4

    Sao chép/Dán mã API Google Script (hiển thị bên dưới) vào trình chỉnh sửa tập lệnh.

  5. 5

    Tùy chọn - Thêm bất kỳ hàm tùy chỉnh bổ sung nào bạn yêu cầu (ví dụ: để gọi các điểm cuối khác nhau hoặc trả về các trường JSON khác nhau).

  6. 6

    Lưu Mã Google Script thông qua biểu tượng (Lưu dự án).

    General_SaveIcon_10052020.png

Cách sử dụng

Hàm KAPI_Public() chịu trách nhiệm tạo URL thích hợp và thực hiện yêu cầu HTTP tới API. Hàm KAPI_Public() có thể được gọi trực tiếp bằng cách nhập nội dung sau (hoặc tương tự tùy thuộc vào điểm cuối và các tham số) vào một ô Google Sheet:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

Hàm KAPI_Public() trả về phản hồi JSON gốc từ API, chẳng hạn như sau cho ví dụ điểm cuối Depth ở trên:

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

Để đặt các trường/giá trị riêng lẻ vào các ô riêng biệt trong Google Sheet, có thể gọi các hàm tùy chỉnh bổ sung để phân tích cú pháp phản hồi JSON, chẳng hạn như các hàm ví dụ KAPI_Ticker() và KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

điều này sẽ hiển thị kết quả tương tự như sau, trong đó dữ liệu sẽ có thể truy cập được cho bất kỳ hàm Google Sheets tiêu chuẩn nào (SUM, AVERAGE, COUNT, v.v.):

API_GoogleSheetExample_10052020.png

Mã Google Script cho các Điểm cuối công khai:

Hàm chung được bao gồm cho các lệnh gọi tới tất cả các Điểm cuối công khai:

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
}

Ví dụ về các hàm dành riêng cho một Điểm cuối cụ thể:

Độ sâu:

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
}

Mã giao dịch:

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
}

Để sử dụng các tập lệnh trên, chỉ cần nối tập lệnh chung vào tập lệnh dành riêng cho điểm cuối:

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
}

Các dấu phân cách thập phân và hàng nghìn hiển thị trong bài viết này có thể khác với các định dạng hiển thị trên nền tảng giao dịch của chúng tôi. Xem lại bài viết của chúng tôi về cách chúng tôi sử dụng dấu chấm và dấu phẩy để biết thêm thông tin.

Bạn cần thêm trợ giúp?