Script Google - Points de terminaison publics de l'API REST

Dernière mise à jour : 1 avr. 2025

Nos points de terminaison publics de l'API REST sont accessibles via une simple requête HTTP (tout comme une page web est demandée via un navigateur web), de sorte qu'un client API pour importer des données de marché dans une feuille Google peut être implémenté avec seulement quelques lignes de code Google Script.

Installation

  1. 1

    Créez une nouvelle feuille Google ou ouvrez une feuille existante.

  2. 2

    Ouvrez l'éditeur de script via le menu Extensions -> Apps Script.

  3. 3

    Supprimez le code par défaut affiché (par exemple, Sélectionner tout puis Supprimer/Retour arrière).

  4. 4

    Copiez/collez le code API Google Script (affiché ci-dessous) dans l'éditeur de script.

  5. 5

    Facultatif - Ajoutez toutes les fonctions personnalisées supplémentaires dont vous avez besoin (pour appeler différents points de terminaison ou renvoyer différents champs JSON, par exemple).

  6. 6

    Enregistrez le code Google Script via l'icône (Enregistrer le projet).

    General_SaveIcon_10052020.png

Utilisation

La fonction KAPI_Public() est responsable de la création de l'URL appropriée et de l'envoi de la requête HTTP à l'API. La fonction KAPI_Public() peut être appelée directement en saisissant ce qui suit (ou similaire selon le point de terminaison et les paramètres) dans une cellule Google Sheet :

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

La fonction KAPI_Public() renvoie la réponse JSON originale de l'API, telle que la suivante pour l'exemple de point de terminaison Depth ci-dessus :

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

Afin de placer les champs/valeurs individuels dans des cellules séparées au sein de la feuille Google, des fonctions personnalisées supplémentaires peuvent être appelées pour analyser la réponse JSON, telles que les fonctions KAPI_Ticker() et KAPI_Depth() par exemple :

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

ce qui afficherait les résultats similaires à ce qui suit, où les données seraient accessibles à toutes les fonctions standard de Google Sheets (SOMME, MOYENNE, NB, etc.) :

API_GoogleSheetExample_10052020.png

Code Google Script pour les points de terminaison publics :

Fonction générale à inclure pour les appels à tous les points de terminaison publics :

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
}

Exemples de fonctions spécifiques à un point de terminaison particulier :

Profondeur :

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
}

Pour utiliser les scripts ci-dessus, ajoutez simplement le script générique au script spécifique au point de terminaison :

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
}

Les séparateurs décimaux et de milliers affichés dans cet article peuvent différer des formats affichés sur nos plateformes de trading. Consultez notre article sur la façon dont nous utilisons les points et les virgules pour plus d'informations.

Besoin d’aide supplémentaire ?