Importar valor atualizado do Nucoin numa Planilha Google

Com base na dica dada pelo @FernandoLacerda aqui: Importar valor atualizado do Nucoin no google sheets? - #2 de FernandoLacerda

Para acessar um valor específico em um arquivo JSON no Google Sheets, você pode usar o Google Apps Script. Aqui estão os passos para fazer isso:

  1. Abra o Google Sheets e clique em “Extensões” no menu principal.
  2. Selecione “Editor de Apps Script”. Isso abrirá uma nova guia para o Apps Script.
  3. No editor de código, exclua a função de espaço reservado para deixar uma janela em branco.
  4. Cole o seguinte código para criar uma função para importar JSON:
function importJSON(url) {
  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);
  return data.latest;
}
  1. Salve o projeto com um nome descritivo, por exemplo, “ImportJSON”.
  2. Feche o Editor de Scripts e volte para a guia da sua planilha do Google.
  3. Na célula A1, insira =importJSON("https://explorer.nucoin.com.br/files/blockchain/price_history.json").

Isso deve preencher sua célula do Google Sheets com o valor “latest” do arquivo JSON. Por favor, note que você precisa ter permissões adequadas para acessar o arquivo JSON e que o Google Apps Script tem limites de uso.

9 curtidas

Isso funcionaria se o preço do Nucoin estive acesso em um ambiente irrestrito, não dentro do próprio app do Nubank.

Funciona sim. Entre no link e veja com seus próprios olhos a cotação atualizada doNucoin:

https://explorer.nucoin.com.br/files/blockchain/price_history.json

Está livremente acessível na internet para qualquer pessoa. Sem restrição. Inclusive já programei a atualização da cotação do NCN na minha planilha e está funcionando perfeitamente. A cada uma hora eles atualizam.

3 curtidas

Se vale a dica, esse “latest” tem a precisão de quatro casas decimais apenas.

Pra quem quiser maior precisão, é possível calcular a partir das informações do pool de liquidez. A informação da data corrente também está sendo atualizada de hora em hora. Basta dividir o brlBalance da data corrente pelo ncnBalance da mesma data.

Por outro lado, tanta precisão não faz muito sentido com uma frequência de atualização de hora em hora, é mais um capricho mesmo.

8 curtidas

Montei uma planilha com atualização dos valores à cada 1 hora e cálculo da cotação usando os dados da pool (conforme vc mencionou). Se quiser pode diminuir o tempo de atualização (até 1 minuto) pra evitar perder o momento certo que o JSON for atualizado. Fiz ela bem simples apenas pra servir como base pra quem se interessar.

4 curtidas

Não manjo nada avançado de Excel rsrsrsrs

1 curtida

Eu uso o importXml

3 curtidas

Nesse trecho, vocês podem substituir o retorno para:

return Object.entries(data.prices).map(( [k, v] ) => ([k,v[‘avg’]]));

Isso vai fazer com que 2 colunas sejam preenchidas: data e preço.

No caso, selecionei o preço médio, que é o exibido pelo gráfico do explorer.

1 curtida