Neste artigo, veja como gerar o **auth\_code** e o **token\_code,** necessários para a utilização das macros [sc\_api\_upload](https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/02-macros/#sc_api_upload) e [sc\_api\_download](https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/02-macros/#sc_api_download).

Estas chaves devem ser geradas individualmente, siga os passos abaixo para gerá-los sem erro.

![](//img.zohostatic.com/zde/static/images/info.png)

Para a utilização das macros de upload e download com o google driver, é necessário [habilitar a api do google drive](https://help.scriptcase.net/portal/pt/kb/articles/habilitando-api-google-drive-no-console-do-google) 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**.

![](https://help.scriptcase.net/galleryDocuments/edbsnc234a38f537176e7f2527f07dffe357cabed4a3b08df1e78ecdd74cd6aa0b909917fb5fbaa8ad2dcb35a40ae3509ff45?inline=true)

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.

![](https://help.scriptcase.net/galleryDocuments/edbsnaf195bf61bba25c5d72736ec2686047b6775b54d84acdbe6b3ef495b66ad910047fcf747d0e1fd2e1310f26c7192a241?inline=true)

### 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"]}}';
6. // Gera o link para autenticação da conta
7. $url = sc\_api\_gc\_get\_url($app\_name, $json\_oauth);
8. // Redireciona a app para o link gerado pela macro
9. 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.

![](https://desk.zoho.com/DocsDisplay?zgId=716875472&mode=inline&blockId=o6tif077e3695a5bc416cbe775fa800d36c19)

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

![](https://desk.zoho.com/DocsDisplay?zgId=716875472&mode=inline&blockId=o6tifdd6d2c2ab2de41cc935e0fbc5ec51f96)

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.

![](https://desk.zoho.com/DocsDisplay?zgId=716875472&mode=inline&blockId=4mw56fdd84a325b6f4c95a326fb086e340035)

### 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.

![](https://help.scriptcase.net/galleryDocuments/edbsnfa94f939a262656b358a4ba5af99c53b5f6d669337abe8983d29e01566a4d8ff4b81a8a12226257cefdc5127045038c4?inline=true)

## 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.

![](//img.zohostatic.com/zde/static/images/info.png)

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:

![](https://help.scriptcase.net/galleryDocuments/edbsn55f6513de1a5fd3eaa8a32388e528682a67cb7bd723245102307097018d6055d5f0a55b72b5e05c61b4167021261eed1?inline=true)

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"]}}';
6. // Gera o link para autenticação da conta
7. // $url = sc\_api\_gc\_get\_url($app\_name, $json\_oauth);
8. // Redireciona a app para o link gerado pela macro
9. // sc\_redir($url);

6. Após a linha do **sc\_redir**, que deve está comentada, adicione as linhas abaixo.

![](https://help.scriptcase.net/galleryDocuments/edbsn55f6513de1a5fd3eaa8a32388e528682f55d89ffdc412ca7aab08c0dc393d26e4f204a951b64af7990afebde7bfc0cff?inline=true)

### Exemplo do código

1. // Recebe auth\_code gerado no passo anterior
2. $auth\_code = '4/1AY0e-g4BjstStsxAJd7A5jjlzBifl5AWSS9x04xhwp6Cyh2JON0i3r2oNd4';
4. $auth\_token = sc\_api\_gc\_get\_obj($app\_name, $json\_oauth, $auth\_code);
5. echo $auth\_token;

Como deve está o código neste momento.

![](https://help.scriptcase.net/galleryDocuments/edbsn03ee6c590669904f06b0dd532f3b925415d8ab883cec96cd84a82caf70f0f4f58a8b37d6baf0c11cf195490803d210f6?inline=true)

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}](http://www.googleapis.com\/auth\/drive)

![](//img.zohostatic.com/zde/static/images/caution.png)

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**

![](https://help.scriptcase.net/galleryDocuments/edbsn55f6513de1a5fd3eaa8a32388e528682fc96f97b488d736b0e712f3836af2e45cbbe180a39e56243babeeae2f1d8340f?inline=true)