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
- Acesse o console de APIs do Google: http://console.developers.google.com
- Crie um novo projeto “NOVO PROJETO” / “NEW PROJECT“;
- Clique sobre o link “ATIVAR APIS E SERVIÇOS“;
- Procure por “Google Drive API“, clique sobre a API do Drive em em seguida em “ATIVAR“;
- 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“;
- Cadastrando a URL de retorno, apontando para um formulário do Maker ou Fluxo Web publicamente acessível, por exemplo:
- http://exemplos.l2servidores.com.br/webrun/form.jsp?sys=TEN&action=openform&formID=8338
- http://localhost:8087/api27/form.jsp?sys=TEN&action=openform&formID=8338
- Copie o “Client ID” e “Client secret” e informe no mapa com os nomes “client_id” e “client_secret” respectivamente;
- 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.
- gDrive = Nuvem – Inicializar(‘GOOGLE-DRIVE‘, MAPA, ‘L2MAKER-EXEMPLO-CloudStorage-Atualizar Dados’);
- Endereço = Nuvem – Obter URL de Autorização(gDrive);
- 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;
- 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;
- 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;
- 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.
- 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.
- 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;
- 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“.