Estas claves deben generarse individualmente, siga los pasos a continuación para generarlas sin error.
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:
- app_name - Recibe el nombre de la aplicación, disponible en su configuración de api. Este parámetro acepta cadenas o variables.
- 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.
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.
Código de ejemplo
- // $app_name debería recibir el nombre de la aplicación configurado en su cuenta de Google
- $app_name = 'scriptcase';
- // $json_oauth debe recibir el contenido del archivo json disponible para descargar en la configuración de su aplicación de 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"]}}';
- // Genera el enlace de autenticación de la cuenta
- $url = sc_api_gc_get_url($app_name, $json_oauth);
- //Redirige la aplicación al enlace generado por la macro.
- 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.
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.
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.
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:
- app_name - Recibe el nombre de la aplicación, disponible en su configuración de api. Este parámetro acepta cadenas o variables.
- 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.
- 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.
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:
6. Después de la línea sc_redir, que debe comentarse, agregue las líneas a continuación.
Código de Ejemplo
- // Receives auth_code generated in the previous step
- $auth_code = '4/1AY0e-g4BjstStsxAJd7A5jjlzBifl5AWSS9x04xhwp6Cyh2JON0i3r2oNd4';
- $auth_token = sc_api_gc_get_obj($app_name, $json_oauth, $auth_code);
- echo $auth_token;
El código debería verse así en este momento.
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:
- {"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}
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.
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