No artigo de hoje vou mostrar como fazer uma integração simples com Google Drive, baixando um arquivo csv dentro de alguma pasta.
- Acesse o Google Drive, clique com o botão direito, e depois clique em Nova Pasta
- Dê um nome qualquer, como por exemplo, Public
- Crie um arquivo txt qualquer (ou csv), no nosso caso, terá uma lista de transportadoras
- Faça o upload do arquivo txt dentro dessa pasta
- Clique com o botão direito em cima do arquivo, e depois clique em Gerar Link
- Copie esse link, agora iremos fazer o código em AdvPL
- No link copiado, iremos acrescentar o texto &authuser=0&export=download , então iremos usar a função HttpGet para fazer o download do conteúdo
- Por último, basta transformar a string em um array de linhas, e percorrer eles, fazendo suas tratativas, abaixo o código fonte desenvolvido:
//Bibliotecas #Include "Totvs.ch" /*/{Protheus.doc} User Function zGoogleD Função para fazer o download de conteúdos de arquivos do Google Drive @type Function @author Atilio @since 03/07/2021 @version version /*/ User Function zGoogleD() Local aArea := GetArea() Local cURLOrig := "https://drive.google.com/uc?id=1qEQA02mQrY8zOnFm7HU1xvczC4b8RMnn" Local cURLDown := cURLOrig + "&authuser=0&export=download" Local cConteudo := "" Local aLinhas := {} //Faz o download do conteúdo do arquivo do Google Drive para a variável cConteudo := HTTPGet(cURLDown, "", 30, {}, "") //Transforma em um array de linhas aLinhas := StrTokArr(cConteudo, CRLF) /* Aqui se você quiser, pode percorrer o array aLinhas e até mesmo importar via ExecAuto */ RestArea(aArea) Return
Abaixo um print de exemplo da tela de debug, demonstrando a leitura do arquivo do Google Drive:
Nesse artigo eu usei como exemplo, fazer o download de um arquivo txt no Google Drive. Se você for assinante do Google e ter uma Key de API, é possível fazer muito mais coisas, como buscar arquivos dentro de uma pasta.
Por isso, caso precise ver outras possibilidades, abaixo vou deixar alguns links de apoio, inclusive o que eu usei como referência:
- Stack Overflow – Direct download from Google Drive using Google Drive API
- Files:list – Google Drive API
- Files:get – Google Drive API
- Stack Overflow – How get list files from google drive with http request?
O tema desse artigo foi uma sugestão do grande Sérgio Passerini.
Bom pessoal, por hoje é só.
Abraços e até a próxima.