-
-
Save danperrout/b27197056fa38d0d669332647ab89d7a to your computer and use it in GitHub Desktop.
| /* | |
| * @return Acessa radaropcoes.com e retorna informações de um título específico do Tesouro Direto | |
| * Endpoint: https://api.radaropcoes.com/bonds/{bondName} | |
| */ | |
| function TESOURODIRETO(bondName, argumento = "r") { | |
| let srcURL = "https://api.radaropcoes.com/bonds/" + encodeURIComponent(bondName); | |
| let response = UrlFetchApp.fetch(srcURL, { | |
| muteHttpExceptions: true | |
| }); | |
| console.log(srcURL) | |
| if (response.getResponseCode() !== 200) { | |
| throw new Error("Erro ao acessar a API ou título não encontrado."); | |
| } | |
| let bond = JSON.parse(response.getContentText()); | |
| // argumento: | |
| // "r" → valor de resgate | |
| // qualquer outro → valor unitário de investimento | |
| if (argumento === "r") { | |
| return bond.unitaryRedemptionValue; | |
| } else { | |
| return bond.unitaryInvestmentValue; | |
| } | |
| } |
Agora, o PU do resgate só é possível pelo download do CSV no link:
https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv
A boa notícia é que, pelo Google Sheets é possível obter o CSV diretamente na planilha sem necessidade de fazer o download.
Basta colocar a seguinte fórmula na primeira célula da planilha:
=IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv?download=true")
Nesse caso, a planilha irá atualizar toda vez que for reaberta, ou, para forçar a atualização é só fazer uma pequena alteração na fórmula, da um enter, voltar o valor correto e dar outro enter.
Para o PU de aplicação, é só usar o link do CSV de investir:
=IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-investir-csv?download=true")
A fórmula IMPORTDATA não faz a divisão de ponto e vírgula, mas aí é só usar a fórmula SPLIT em uma coluna à frente, referenciando as colunas de interesse:
=ARRAYFORMULA(SPLIT(C2:C70; ";"))
Agora, o PU do resgate só é possível pelo download do CSV no link:
https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv
A boa notícia é que, pelo Google Sheets é possível obter o CSV diretamente na planilha sem necessidade de fazer o download. Basta colocar a seguinte fórmula na primeira célula da planilha:
=IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv?download=true")
Nesse caso, a planilha irá atualizar toda vez que for reaberta, ou, para forçar a atualização é só fazer uma pequena alteração na fórmula, da um enter, voltar o valor correto e dar outro enter.
Para o PU de aplicação, é só usar o link do CSV de investir: =IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-investir-csv?download=true")
A fórmula IMPORTDATA não faz a divisão de ponto e vírgula, mas aí é só usar a fórmula SPLIT em uma coluna à frente, referenciando as colunas de interesse: =ARRAYFORMULA(SPLIT(C2:C70; ";"))
Obrigado pela dica.
Existe uma solução similar a esse (i.e., utilizando formulas GoogleSheets) para resgatar o "ti" (taxa para investir)?
Grato.
Agora, o PU do resgate só é possível pelo download do CSV no link:
https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv
A boa notícia é que, pelo Google Sheets é possível obter o CSV diretamente na planilha sem necessidade de fazer o download. Basta colocar a seguinte fórmula na primeira célula da planilha:
=IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv?download=true")
Nesse caso, a planilha irá atualizar toda vez que for reaberta, ou, para forçar a atualização é só fazer uma pequena alteração na fórmula, da um enter, voltar o valor correto e dar outro enter.
Para o PU de aplicação, é só usar o link do CSV de investir: =IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-investir-csv?download=true")
A fórmula IMPORTDATA não faz a divisão de ponto e vírgula, mas aí é só usar a fórmula SPLIT em uma coluna à frente, referenciando as colunas de interesse: =ARRAYFORMULA(SPLIT(C2:C70; ";"))Obrigado pela dica. Existe uma solução similar a esse (i.e., utilizando formulas GoogleSheets) para resgatar o "ti" (taxa para investir)?
Grato.
O CSV trás essa informação. Você precisa tratar os dados por causa da formatação de vírgula e ponto e vírgula. Mas, está tudo lá.
É possível usar também uma automação no N8N para já entregar os dados tratados, mas ainda não tive tempo pra fazer isso.
=IMPORTDATA("https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv?download=true")
Hmmm, eu testei as duas chamadas (rendimento-resgatar-csv e rendimento-investir-csv), mas em nenhuma das duas consegui localizar o 'ti'.
Por exemplo, para IPCA+ 2029 essas são as duas linhas:
Resgatar:
Tesouro IPCA+ 2029;IPCA + 7 | 82%;R$ 3.434 | 69;15/05/2029
Investir:
Tesouro IPCA+ 2029;IPCA + 7 | 70%;R$ 34 | 48;R$ 3.448 | 90;15/05/2029
Talvez eu esteja sendo leigo, mas não consegui visualizar o 'ti'.
Obrigado.
bom dia, qual argumento passa para pegar o PU de resgate? obrigado.
Testei buscando PU com o parâmetro r e retorna valor zerado. Mas se peço com o parâmetro r_txt vêm o valor de resgate em formato texto. Deve ter um erro na função to NumberCurrency mas não sei identificar.
Boa tarde pessoal,
Estou tentando acompanhar todas as mudanças, mas tenho pouquíssimo conhecimento com o código.
Gostaria de saber se algum de vocês poderia postar o código completo que esteja funcionando no App Script do google depois da atualização do site do tesouro. A única informação que preciso atualmente é o valor de resgate dos títulos. Eu estava usando um script que criava a função TESOURODIRETO(), não sei se é esse que estão usando aqui.
Se for preciso, posso compartilhar o código.
Se puderem ajudar, agradeço.
@WadjoResende Muito obrigado. Funcionou perfeitamente.
Não funcionou para mim. Copiei o código e a fórmula mas não consegui. Será que estou fazendo algo errado?
@thiagochaim @WadjoResende
@gwstavo , talvez seja porque desde hoje o código mais atual que estava funcionando está retornando 403.
O TD deve ter bloqueado os acessos novamente...
Alguém tem alguma novidade?
Não funcionou para mim. Copiei o código e a fórmula mas não consegui. Será que estou fazendo algo errado? @thiagochaim @WadjoResende
Realmente parou de funcionar novamente.
Que tristeza.
Vish, tá retornando 403 da url "https://www.tesourodireto.com.br/documents/d/guest/rendimento-resgatar-csv?download=true";, talvez tenham limitado
Sim, está fora desde meados da quarta/quinta-feira.
Alguém já descobriu uma forma diferente?
Pra quem quer tentar uma implementação própria pra puxar os dados, a dica que eu posso dar é tentar achar uma forma de fazer a requisição que simule um browser. Pelos meus testes, quando você tenta fazer um fetch direto ou até mesmo um wget, eles conseguem detectar e bloquear (403), mas quando eles acham que o acesso está vindo de um browser tipo chrome eles deixa passar na maioria das vezes.
Essa api ai de cima eu implementei com Golang usando uma lib que consegue fazer o request impersonando o Chrome. Por enquanto tá dando certo.
Pra quem quer tentar uma implementação própria pra puxar os dados, a dica que eu posso dar é tentar achar uma forma de fazer a requisição que simule um browser. Pelos meus testes, quando você tenta fazer um fetch direto ou até mesmo um wget, eles conseguem detectar e bloquear (403), mas quando eles acham que o acesso está vindo de um browser tipo chrome eles deixa passar na maioria das vezes.
Essa api ai de cima eu implementei com Golang usando uma lib que consegue fazer o request impersonando o Chrome. Por enquanto tá dando certo.
Excelente, meu caro! Muito obrigado
Pra quem quer tentar uma implementação própria pra puxar os dados, a dica que eu posso dar é tentar achar uma forma de fazer a requisição que simule um browser. Pelos meus testes, quando você tenta fazer um fetch direto ou até mesmo um wget, eles conseguem detectar e bloquear (403), mas quando eles acham que o acesso está vindo de um browser tipo chrome eles deixa passar na maioria das vezes.
Essa api ai de cima eu implementei com Golang usando uma lib que consegue fazer o request impersonando o Chrome. Por enquanto tá dando certo.
Quão difícil é isso para alguém que não tem esse conhecimento técnico todo?
Eu estou frustrado com toda esse mudança do site do Tesouro Direto pois o script que eu usava funcionou muito bem por muitos anos.
Ficarei muito grato se puder me dar orientações ou referências para que eu consiga implementar isso na minha planilha.
Sei que estou pedindo muito e entenderei caso não consiga.
Muito obrigado por toda informação compartilhada até agora.
@andreluistosato agradeço por ter compartilhado seu conhecimento. Resolveu aqui. Vida longa a você.
Tem algum lugar com mais instruções de como utilizar? O código, instruções de como puxar para o Google planilhas, etc? Obrigado! Sucesso!
Funcionou perfeitamente para mim, parabéns Daniel.
boa tarde, na verdade preciso pegar o PU e não a taxa, alguém conseguiu depois dessa mudança?