Google Script - REST API public endpoints

อัปเดตล่าสุด: 1 เมษายน 2568

REST API public endpoints ของเราสามารถเข้าถึงได้ผ่านคำขอ HTTP แบบง่าย (เช่นเดียวกับการร้องขอหน้าเว็บผ่านเว็บเบราว์เซอร์) ดังนั้นไคลเอนต์ API สำหรับนำเข้าข้อมูลตลาดไปยัง Google Sheet จึงสามารถนำไปใช้ได้ด้วยโค้ด Google Script เพียงไม่กี่บรรทัด

การติดตั้ง

  1. 1

    สร้าง Google Sheet ใหม่ หรือเปิดชีตที่มีอยู่

  2. 2

    เปิดตัวแก้ไขสคริปต์ผ่านเมนู Extensions -> Apps Script

  3. 3

    ลบรหัสเริ่มต้นที่แสดง (เช่น Select All จากนั้น Delete/Backspace)

  4. 4

    คัดลอก/วางโค้ด Google Script API (แสดงด้านล่าง) ลงในตัวแก้ไขสคริปต์

  5. 5

    ไม่บังคับ - เพิ่มฟังก์ชันที่กำหนดเองเพิ่มเติมที่คุณต้องการ (เช่น เพื่อเรียกใช้ endpoints ที่แตกต่างกัน หรือส่งคืน JSON fields ที่แตกต่างกัน)

  6. 6

    บันทึกโค้ด Google Script ผ่านไอคอน (Save project)

    General_SaveIcon_10052020.png

การใช้งาน

ฟังก์ชัน KAPI_Public() มีหน้าที่สร้าง URL ที่เหมาะสมและทำการร้องขอ HTTP ไปยัง API ฟังก์ชัน KAPI_Public() สามารถเรียกใช้ได้โดยตรงโดยการป้อนข้อมูลต่อไปนี้ (หรือคล้ายกันขึ้นอยู่กับ endpoint และ parameters) ภายในเซลล์ Google Sheet:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

ฟังก์ชัน KAPI_Public() จะส่งคืนการตอบกลับ JSON ดั้งเดิมจาก API เช่นเดียวกับตัวอย่าง Depth endpoint ด้านบน:

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

ในการวาง fields/values แต่ละรายการลงในเซลล์แยกกันภายใน Google Sheet สามารถเรียกใช้ฟังก์ชันที่กำหนดเองเพิ่มเติมเพื่อแยกวิเคราะห์การตอบกลับ JSON ได้ เช่น ฟังก์ชัน KAPI_Ticker() และ KAPI_Depth() ตัวอย่าง:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

ซึ่งจะแสดงผลลัพธ์ที่คล้ายกับต่อไปนี้ โดยข้อมูลจะสามารถเข้าถึงได้ด้วยฟังก์ชัน Google Sheets มาตรฐานใดๆ (SUM, AVERAGE, COUNT ฯลฯ):

API_GoogleSheetExample_10052020.png

โค้ด Google Script สำหรับ Public Endpoints:

ฟังก์ชันทั่วไปที่จะรวมไว้สำหรับการเรียกใช้ Public Endpoints ทั้งหมด:

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
}

ตัวอย่างฟังก์ชันที่เฉพาะเจาะจงสำหรับ Endpoint บางรายการ:

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
}

หากต้องการใช้สคริปต์ข้างต้น เพียงแค่ผนวกสคริปต์ทั่วไปเข้ากับสคริปต์เฉพาะ endpoint:

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
}

ตัวคั่นทศนิยมและหลักพันที่แสดงในบทความนี้อาจแตกต่างจากรูปแบบที่แสดงบนแพลตฟอร์มการซื้อขายของเรา โปรดอ่านบทความของเราเกี่ยวกับวิธีที่เราใช้ จุดและจุลภาค สำหรับข้อมูลเพิ่มเติม

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่