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.




