Blog

Gerando os dados para acesso via OAuth ao Google Drive

ATENÇÃO: Esta forma de autenticação requer que o usuário libere no navegador o acesso de tempos em tempos (horas, dias, …), está não é a opção mais usual. Para uso via sistema, considere usar a opção de conta de serviço: Como gerar o JSON.

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“;

Criando a conexão

A inicialização é feita com um mapa contendo os seguintes itens:

  • client_id (Letras);
  • client_secret (Letras);
  • redirect_uri (Letras);
  • access_token (Letras) – Opcional/Em branco nesse passo;
  • refresh_token (Letras) – Opcional/Em branco nesse passo;
  • expire_at (Data e Hroas ou Letras) – Opcional/Em branco nesse passo.
  1. gDrive = Nuvem – Inicializar(‘GOOGLE-DRIVE‘, MAPA, ‘L2MAKER-EXEMPLO-CloudStorage-Atualizar Dados’);
  2. Endereço = Nuvem – Obter URL de Autorização(gDrive);
  3. Após obter a URL você deve abrir a URL retornada em uma nova janela, nela o Google irá conduzir o processo de autenticação e autorização de acesso segundo a política de segurança do Google;
  4. Após concluído o processo de autorização o Google irá redirecionar para o endereço informado no inicio (“redirect_uri”), retornando o código de liberação;
  5. Para transformar o código de liberação em um token de acesso e um token de atualização você deve chamar a função “Nuvem – Processar Autorização(gDrive);” passando um mapa com os mesmo dados do Google Drive utilizados ao criar a URL de autenticação;
  6. Após validar a liberação de acesso no servidor do Google o fluxo de atualização de dados será disparado com os dados de acesso retornado. Este fluxo deve obter os dados de acesso no mapa e armazená-los em algum local persistente (tabela, arquivo, …). OBS: Podem estar em branco caso a liberação não seja válida.
  7. Após esse processo as demais instâncias do mapa com dados de acesso ao Drive devem conter todos os parâmetros preenchidos, incluindo: access_token, refresh_token, expire_at.
  8. O access_token se renova períodicamente, a API faz a chamada de forma transparente, e sempre que necessário executa o fluxo de atualização de dados passando os novos dados de acesso;
  9. Após criar a configuração do projeto você deve chamar a função que verifica o acesso (Nuvem – Autenticação valida(gDrive)) elá irá indicar se os dados de acesso à API continuam válidos, e permitirá enviar o usuário novamente à tela de liberação de acesso.

Revogando o acesso

Para cancelar o acesso a uma conta basta criar uma conexão com o Google Drive informando o access_token e refresh_token e chamando a função “Nuvem – Revogar Autorização“.