Google Script - Pontos de extremidade públicos da API REST

Última atualização: 1/04/2025

Os nossos endpoints públicos da API REST são acessíveis através de um pedido HTTP simples (tal como uma página web é solicitada através de um navegador web), pelo que um cliente API para importar dados de mercado para uma Folha de Cálculo Google pode ser implementado com apenas algumas linhas de código Google Script.

Instalação

  1. 1

    Crie uma nova Folha de Cálculo Google ou abra uma folha existente.

  2. 2

    Abra o editor de scripts através do menu Extensões -> Apps Script.

  3. 3

    Elimine o código predefinido que é mostrado (por exemplo, Selecionar Tudo e depois Eliminar/Retroceder).

  4. 4

    Copie/Cole o código da API do Google Script (mostrado abaixo) no editor de scripts.

  5. 5

    Opcional - Adicione quaisquer funções personalizadas adicionais que necessite (para chamar diferentes endpoints ou retornar diferentes campos JSON, por exemplo).

  6. 6

    Guarde o Código do Google Script através do ícone (Guardar projeto).

    General_SaveIcon_10052020.png

Utilização

A função KAPI_Public() é responsável por criar o URL apropriado e fazer o pedido HTTP à API. A função KAPI_Public() pode ser chamada diretamente inserindo o seguinte (ou similar, dependendo do endpoint e dos parâmetros) numa célula da Folha de Cálculo Google:

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

A função KAPI_Public() retorna a resposta JSON original da API, como a seguinte para o exemplo de endpoint Profundidade acima:

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

Para colocar os campos/valores individuais em células separadas na Folha de Cálculo Google, podem ser chamadas funções personalizadas adicionais para analisar a resposta JSON, como as funções de exemplo KAPI_Ticker() e KAPI_Depth():

bash

Bash

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

=KAPI_Depth("XDGUSD", "5")

que exibiria os resultados de forma semelhante ao seguinte, onde os dados seriam acessíveis a qualquer uma das funções padrão das Folhas de Cálculo Google (SOMA, MÉDIA, CONTAGEM, etc.):

API_GoogleSheetExample_10052020.png

Código Google Script para Endpoints Públicos:

Função Geral a ser incluída para chamadas a todos os Endpoints Públicos:

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
}

Exemplos de Funções específicas para um determinado Endpoint:

Profundidade:

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
}

Para usar os scripts acima, basta anexar o script genérico ao script específico do 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
}

Os separadores decimais e de milhares apresentados neste artigo podem diferir dos formatos exibidos nas nossas plataformas de negociação. Consulte o nosso artigo sobre como usamos pontos e vírgulas para mais informações.

Precisa de mais ajuda?