Auth_Code e Token_Code

Como gerar o auth_code e o token_code

Neste artigo, veja como gerar o auth_code e o token_code, necessários para a utilização das macros sc_api_upload e sc_api_download.
Estas chaves devem ser geradas individualmente, siga os passos abaixo para gerá-los sem erro.

Para a utilização das macros de upload e download com o google driver, é necessário habilitar a api do google drive em sua conta google.

Gerar auth_code com a macro sc_api_gc_get_url

A macro sc_api_gc_get_url gera uma URL para a autenticação do usuário da conta google utilizada para configuração da API.
Ela possui dois parâmetros:
  1. app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável.
  2. json_oauth - Recebe o conteúdo do arquivo json, este arquivo está disponível para download nas configurações da sua api. Este parâmetro aceita strings ou variável
Siga os passos abaixo.

1. Crie uma aplicação do tipo blank em seu projeto, com o objetivo de obter o auth_code.



2. No evento onExecute, adicione o código abaixo.
Os  valores atribuídos as variáveis $app_name e $json_oauth, no exemplo abaixo, são apenas para ilustração devendo ser alterado pelos dados de sua conta.


Exemplo do código

  1. // $app_name deve receber o nome do aplicativo configurado em sua conta google
  2. $app_name  = 'scriptcase';
  3. // $json_oauth deve receber o conteúdo do arquivo json disponível para download nas configurações do seu aplicativo do google.
  4. $json_oauth  = '{"installed":{"client_id":"238650139811-eqrje3lqhj9a404iuduh9l5kvk5i13ng.apps.googleusercontent.com","project_id":"sample-294791","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x519_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"E-Z_t8PU-8u0BFwumHRorbTl","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}';

  5. // Gera o link para autenticação da conta
  6. $url = sc_api_gc_get_url($app_name, $json_oauth);
  7. // Redireciona a app para o link gerado pela macro
  8. sc_redir($url);

Autenticação do Google

3.  Em seguida, execute a aplicação.
Será solicitada a realização do login, com a conta utilizada para a configuração da API.


4. Após o login será solicitada a permissão de acesso:


4. Em seguida, o código será gerado.
Armazene o código em um arquivo txt, ele será necessário para gerarmos o token_code.


Possíveis erros

Este erro ocorre quando o valor informado no parâmetro json_oauth está errado.
Abra o arquivo json novamente, copie todo o conteúdo do arquivo, ele de ser informado por completo.



Gerar token_code com a macro sc_api_gc_get_obj

A macro sc_api_gc_get_obj gera o token_code.
Ela possui quatro parâmetros:
  1. app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável.
  2. json_oauth - Recebe o conteúdo do arquivo json, este arquivo está disponível para download nas configurações da sua API. Este parâmetro aceita strings ou variável
  3. auth_code - Recebe o auth_code gerado no passo anterior ou outro auth_code válido que você já tenha gerado.
Siga os passos abaixo.
Este passo a passo deve ser executado apenas para cada auth_code gerado. Caso algum problema ocorra no momento de gerar o token_code, será necessário gerar um novo auth_code.

Na mesma aplicação blank, criada para gerar o auth_code, é possível gerar também o token_code, para isso siga os passos abaixo.

5. Comente as linhas destacadas abaixo:


Exemplo do código com as linhas que devem estár comentadas.
  1. // $app_name deve receber o nome do aplicativo configurado em sua conta google
  2. $app_name  = 'scriptcase';
  3. // $json_oauth deve receber o conteúdo do arquivo json disponível para download nas configurações do seu aplicativo do google.
  4. $json_oauth  = '{"installed":{"client_id":"238650139811-eqrje3lqhj9a404iuduh9l5kvk5i13ng.apps.googleusercontent.com","project_id":"sample-294791","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x519_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"E-Z_t8PU-8u0BFwumHRorbTl","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}';

  5. // Gera o link para autenticação da conta
  6. // $url = sc_api_gc_get_url($app_name, $json_oauth);
  7. // Redireciona a app para o link gerado pela macro
  8. // sc_redir($url);

6. Após a linha do sc_redir, que deve está comentada, adicione as linhas abaixo.


Exemplo do código

  1. // Recebe auth_code gerado no passo anterior
  2. $auth_code = '4/1AY0e-g4BjstStsxAJd7A5jjlzBifl5AWSS9x04xhwp6Cyh2JON0i3r2oNd4';

  3. $auth_token = sc_api_gc_get_obj($app_name, $json_oauth, $auth_code);
  4. echo $auth_token;
Como deve está o código neste momento.



7. Em seguida, execute a aplicação. O valor do token_code deve ser exibido na tela.
Armazene o token em um arquivo .txt.

Exemplo do token_code gerado:
  1. {"access_token":"ya29.a1AfH6SMBSExys1mg0_4aaZ1H8iVNUtZ-2iid4zIjvywOpPDpL5_fhpuYu_Evgqj14Zll1mu0DKeX-UPBBbkIY33T_hIwUKNi6h5GVmE8RSt7vwj1N8rmM_ae3EjOBMDIaS_F2vkZ8ZzpnBA0V38WwYBxBNR1C","expires_in":3599,"refresh_token":"1\/\/0heh4c5k0p_OqCgYIARAAGBESNwF-L2IrTOLtSoBOr-qdK4gDtSkyXtLYh99S1DGG6Y0x6sBwNu2sVnlqEFczG7-zEIBvCd8Bb6Q","scope":"https:\/\/www.googleapis.com\/auth\/drive","token_type":"Bearer","created":1623154166}

A macro sc_api_gc_get_obj deve ser executada apenas uma vez para cada auth_code gerado.
Após obter o token_code, o parâmetro auth_token deve alterado para que um novo token_code seja obtido. Caso contrário, será exibido o erro Fatal error: Uncaught InvalidArgumentException: Invalid token format, descrito abaixo, ao executar a aplicação.

Possíveis erros ao gerar o token_code.

Fatal error: Uncaught InvalidArgumentException: Invalid token format

Este erro ocorre quando a macro sc_api_gc_get_obj é executada pela segunda vez, sem que os valores do auth_code tenha sido alterados.
Neste caso, será necessário gerar um novo auth_code, para obter um novo como visto no início do artigo. Retorne para o passo Gerar auth_code com a macro sc_api_gc_get_url



    • Related Articles

    • Como realizar o Registro Offline

      Este tipo de registro é realizado em duas etapas. Solicitação Offline - Nesta etapa iremos gerar e validar um arquivo que será utilizado na etapa de Registro Offline. Registro Offline - Nesta etapa, em posse do arquivo .lic, iremos realizar o ...
    • Atualizando o Módulo de Segurança: como migrar do antigo para o novo

      Os ataque às aplicações web estão sempre evoluindo. Com o dado sendo uma moeda tão valiosa, é de extrema importância manter a segurança de um sistema atualizada para evitar perdas. O novo módulo de segurança, além de ser extremamente flexível e ...
    • Como configurar o Amazon S3

      Em ambientes instalados antes do release 9.8.007 do Scriptcase, as aplicações que utilizam o Amazon S3 podem apresentar problemas no download dos arquivos. Para solucionar este problema, basta seguir o passo a passo abaixo. Passo 1 - Realize o ...
    • Como conectar com o MySQL 8.0

      O MySQL 8 utiliza uma autenticação diferente ao de seus antecessores, que até o momento não é reconhecido pelo PHP 7, o que gera o erro "The server requested authentication method unknown to the client" ao tentar conectar-se ao Scriptcase.  ...
    • Utilizando o Database Builder

      O DataBase Builder é um 'SGBD'(Sistema Gerenciador de Banco de Dados) do Scriptcase, esta ferramente permite criar tabelas, modificar a estrutura de suas tabelas, gerar diagramas ER (Entidade x Relacionamentos), realizar a exportação das ...