Blog

Trabalhando com arquivos no Google Drive

Esta API sua os recursos disponibilizados pelo Google, respeitando os termos de uso do serviço Google Drive API. Na versão gratuita são 15 GB de espaço para arquivos (09/2018).  (Consultar informações oficiais: https://www.google.com.br/drive/ )

Pré-requisitos

  • Conta no Google;
  • Webrun acessível na Internet (desejável);

Configurando um projeto na conta do Google

  1. Acesse o console de APIs do Google: http://console.developers.google.com
  2. Crie um novo projeto “NOVO PROJETO” / “NEW PROJECT“;
  3. Clique sobre o link “ATIVAR APIS E SERVIÇOS“;
  4. Procure por “Google Drive API“, clique  sobre a API do Drive em em seguida em “ATIVAR“;
  5. Adicione credenciais de acesso (Credentials) do tipo “OAuth 2.0” clicando em Credenciais > Criar Credenciais > ID do cliente OAuth, selecione o tipo de aplicativo “Aplicativo da Web“;
  6. Cadastrando a URL de retorno, apontando para um formulário do Maker ou Fluxo Web publicamente acessível, por exemplo:
    1. http://exemplos.l2servidores.com.br/webrun/form.jsp?sys=TEN&action=openform&formID=8338
    2. http://localhost:8087/api27/form.jsp?sys=TEN&action=openform&formID=8338
  7. Copie o “Client ID” e “Client secret” e informe no mapa com os nomes “client_id” e “client_secret” respectivamente;
  8. Informe a URL de retorno no item “redirect_uri“;

Usando as funções

O uso das funções devem seguir os seguintes blocos: Autorizar o acesso à conta, Envio e Download de arquivos, Listagem e pesquisa de arquivos, Cancelando/Revogando um acesso.

Autorizar o acesso à conta

Este passo libera o acesso das funções a uma conta no Google Drive. É o primeiro passo para utilização das demais rotinas da API. Ela pode ser feita via OAuth ou Conta de serviço (recomendado).

Para criar uma conexão utilize a função “Google Drive – Inicializar” passando os dados de acordo com o método escolhido.

Envio de arquivos

Após criar uma instância da conexão com o Google Drive devidamente autorizada, basta executar a chamada à função “Nuvem – Enviar arquivo(gDrive, Arquivo local, ID remoto, Metadados)” onde:

  1. gDrive é o retorno da função “Nuvem – Inicializar”;
  2. Arquivo local é o caminho completo do arquivo no servidor (EX: C:\TEMP\meu-arquivo.zip);
  3. ID remoto é o código do arquivo a ser atuaizado, ou em branco para criar um novo arquivo;
  4. Metadados é um mapa com informações sobre o arquivo a ser enviado (Pode ser em branco).

O retorno dessa função será um mapa com:

  • ID (Letras) – Identificador único do arquivo no servidor;
  • SUCESSO (Lógico) – Identifica se a operação temrinou com sucesso;
  • TAMANHO (Inteiro) – Número de bytes do arquivo enviado;
  • NOME (Letras) – Nome do arquivo no servidor.

Consultando/Listando arquivos

Os arquivos no Google Drive podem ser consultados individualmente (por ID), ou pesquisado por nome/pasta.

Consultando por ID

Utilize a função “Nuvem – Obter informações do arquivo” passando a conexão com o Drive, e o ID do arquivo a ser consultado. Dica, você pode utilizar esta função para comparar que o MD5 do arquivo enviado e o recebido são os mesmo.

Consultando por nome

Você pode lista todos os arquivos da raiz, ou de uma pasta específica (pelo ID). Para tal utilize a função “Nuvem – Listar arquivos”, com os seguintes parâmetros:

  1. gDrive é o retorno da função “Nuvem – Inicializar”;
  2. Arquivo remoto (Letras) – Passe um barra invertida “/” para listar todos os arquivos e pastas na raiz. Ou o nume de um arquivo para retornar todos os arquivos remotos que contém aquele nome.
  3. O retorno desta função será uma lista de mapas, utilize as funções nativas de lista e mapa do Maker para percorrer os dados retornados, cada mapa irá conter os seguintes itens:
    • ID (Letras) – Identificador único do arquivo no servidor;
    • DIRETORIO (Lógico) – Identifica se o item é uma pasta;
    • TAMANHO (Inteiro) – Número de bytes do arquivo enviado;
    • NOME (Letras) – Nome do arquivo no servidor;
    • Md5 (Letras) – Hash MD5 do arquivo remoto.

Baixando ou removendo um arquivo

Para baixar um arquivo para o servidor (onde está o Webrun) utilize a função “Nuvem – Baixar arquivo”, informando o caminho completo do arquivo no servidor, e o ID do arquivo a ser copiado do Drive.

Para excluir um arquivo utilize a função “Nuvem – Deletar arquivo“, informando o ID do arquivo a ser excluído do servidor. Ação não tem como ser desfeita, utilize com cautela ou não adicione no seu projeto para evitar perda de dados. Arquivos enviados pela API podem ser removidos manualmente pela interface do Google Drive.

Solução de problemas

  • Error: redirect_uri_mismatch – Configure a URL completa do formulário ou fluxo de retorno.
  • Falta de acesso a API do Google Drive: Caso o projeto não tenha sido configurado para acessar as APIs do Google Drive será exibido uma mensagem de erro parecida com essa: Project XYZ is not found and cannot be used for API calls. If it is recently created, enable Drive API by visiting https://console.developers.google.com/apis/api/drive.googleapis.com/overview?project=XYZ then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

Leave a comment