Estas chaves devem ser geradas individualmente, siga os passos abaixo para gerá-los sem erro.
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:
- app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável.
- 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
- // $app_name deve receber o nome do aplicativo configurado em sua conta google
- $app_name = 'scriptcase';
- // $json_oauth deve receber o conteúdo do arquivo json disponível para download nas configurações do seu aplicativo do google.
- $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"]}}';
- // Gera o link para autenticação da conta
- $url = sc_api_gc_get_url($app_name, $json_oauth);
- // Redireciona a app para o link gerado pela macro
- 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:
- app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável.
- 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
- 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:
6. Após a linha do sc_redir, que deve está comentada, adicione as linhas abaixo.
Exemplo do código
- // Recebe auth_code gerado no passo anterior
- $auth_code = '4/1AY0e-g4BjstStsxAJd7A5jjlzBifl5AWSS9x04xhwp6Cyh2JON0i3r2oNd4';
- $auth_token = sc_api_gc_get_obj($app_name, $json_oauth, $auth_code);
- 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:
- {"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