En este artículo, puede ver cómo generar auth\_code y token\_code, necesarios para usar las macros [sc\_api\_upload](https://www.scriptcase.net/docs/es_es/v9/manual/14-macros/02-macros/#sc_api_upload) y [sc\_api\_download](https://www.scriptcase.net/docs/es_es/v9/manual/14-macros/02-macros/#sc_api_download).

Estas claves deben generarse individualmente, siga los pasos a continuación para generarlas sin error.

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

Para usar las macros de carga y descarga con Google Drive, debe [habilitar la API de Google Drive](https://help.scriptcase.net/portal/es/kb/articles/habilitacion-de-la-api-de-google-drive-en-google-console) en tu cuenta de Google.

## Genere auth\_code con la macro sc\_api\_gc\_get\_url

La macro **sc\_api\_gc\_get\_url** genera una URL para la autenticación del usuario de la cuenta de Google que se utiliza para la configuración de la API.

Tiene dos parámetros:

1. app\_name - Recibe el nombre de la aplicación, disponible en su configuración de api. Este parámetro acepta cadenas o variables.
2. json\_oauth - Recibe el contenido del archivo json, este archivo está disponible para descargar en la configuración de su api. Este parámetro acepta cadenas o variables.

Siga los pasos a continuación.

1. Cree una aplicación tipo blan en su proyecto, con el objetivo de obtener la **auth\_code**.

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

2. En el evento **onExecute**, agregue el siguiente código.

Los valores asignados a las variables **$app\_name** y **$json\_oauth**, en el siguiente ejemplo, son solo para ilustración y deben ser modificados por los datos de su cuenta.

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

### Código de ejemplo

1. // $app\_name debería recibir el nombre de la aplicación configurado en su cuenta de Google
2. $app\_name  = 'scriptcase';
3. // $json\_oauth debe recibir el contenido del archivo json disponible para descargar en la configuración de su aplicación de 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. // Genera el enlace de autenticación de la cuenta
7. $url = sc\_api\_gc\_get\_url($app\_name, $json\_oauth);
8. //Redirige la aplicación al enlace generado por la macro.
9. sc\_redir($url);

### Autenticación de Google

3. Luego ejecute la aplicación.

Se le pedirá que inicie sesión con la cuenta utilizada para configurar la API.

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

4. Entonces se generará el código.

Almacene el código en un archivo de texto, será necesario que generemos el código del token.

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

### Posibles errores

Este error ocurre cuando el valor informado en el parámetro **json\_oauth** es incorrecto.

Abra el archivo json nuevamente, copie todo el contenido del archivo, debe ser informado en su totalidad.

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

## Genere token\_code con la macro sc\_api\_gc\_get\_obj

La macro **sc\_api\_gc\_get\_obj** genera el token\_code.

Tiene cuatro parámetros:

1. **app\_name** - Recibe el nombre de la aplicación, disponible en su configuración de api. Este parámetro acepta cadenas o variables.
2. **json\_oauth** - Recibe el contenido del archivo json, este archivo está disponible para descargar en la configuración de su API. Este parámetro acepta cadenas o variables.
3. **auth\_code** - Recibe el código de autenticación generado en el paso anterior u otro  código de autenticación válido que ya ha generado.

Siga los pasos a continuación.

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

Este tutorial solo debe realizarse para cada código de autenticación generado. Si ocurre algún problema al generar el token\_code, será necesario generar un nuevo auth\_code.

En la misma aplicación blank, creada para generar el auth\_code, también es posible generar el token\_code, para ello siga los pasos a continuación.

5. Comente las líneas resaltadas a continuación:

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

Ejemplo de código con las líneas que deben comentarse.

1. // $app\_name should receive the app name configured in your google account
2. $app\_name  = 'scriptcase';
3. // $json\_oauth should receive the contents of the json file available for download in your google app's settings.
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. // Generates the account authentication link
7. // $url = sc\_api\_gc\_get\_url($app\_name, $json\_oauth);
8. // Redirects the app to the link generated by the macro
9. // sc\_redir($url);

6. Después de la línea sc\_redir, que debe comentarse, agregue las líneas a continuación.

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

### Código de Ejemplo

1. // Receives auth\_code generated in the previous step
2. $auth\_code = '4/1AY0e-g4BjstStsxAJd7A5jjlzBifl5AWSS9x04xhwp6Cyh2JON0i3r2oNd4';
4. $auth\_token = sc\_api\_gc\_get\_obj($app\_name, $json\_oauth, $auth\_code);
5. echo $auth\_token;

El código debería verse así en este momento.

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

7. Luego ejecute la aplicación. El valor de token\_code debe mostrarse en la pantalla.
Almacene el token en un archivo .txt.

Ejemplo de **token\_code** generado:

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%22,%22token_type%22:%22Bearer%22,%22created%22:1623154166%7D)

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

La macro **sc\_api\_gc\_get\_obj** debe ejecutarse solo una vez por cada **auth\_code** generado.
Después de obtener el **token\_code**, el parámetro **auth\_token** debe cambiarse para que se obtenga un nuevo **token\_code**. De lo contrario, se mostrará **Fatal error: Uncaught InvalidArgumentException: Invalid token format**, que se describe a continuación, se mostrará al ejecutar la aplicación.

### Posibles errores al generar token\_code.

### Fatal error: Uncaught InvalidArgumentException: Invalid token format

> Este error ocurre cuando la macro **sc\_api\_gc\_get\_obj** se ejecuta por segunda vez sin que se hayan cambiado los valores de **auth\_code**.
> En este caso, será necesario generar un nuevo auth\_code, para obtener uno nuevo como se ve al principio del artículo. Volver al paso Generar **auth\_code** con la macro **sc\_api\_gc\_get\_url**

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