Autenticación con servicios de Google
Si el script usa servicios de Google, como Google Drive, Sheets y Mail, debe obtener credenciales. Hay algunas opciones para obtener las credenciales:
- Opción 1 : fácil de seguir y tarda menos tiempo, pero debe repetirla cada hora cuando expire el token de acceso.
- Opción 2 : un poco más complicada, pero solo tiene que repetirla si el token de actualización no es válido.
- Opción 3 : también un poco más complicado (usa el script de PowerShell proporcionado), pero solo tiene que repetirlo si el token de actualización no es válido.
Opción 1: Obtención de un token de acceso desde el área de juegos de Google OAuth
- Ir al área de juegos de Google OAuth
- En Entrada de sus propios ámbitos, pegue https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
- Haga clic en Autorizar API
- Una vez autorizadas las API, haga clic en Código de autorización de Exchange para tokens.
- Copia del valor del access_token de la respuesta
- En soluciones como La detección de anuncios no aprobados, que acceden a los servicios de Google, establezca el campo del
accessToken
objeto de credenciales en el token de acceso copiado en el paso 5.
Nota:
Dado que el token de acceso expira en 1 hora, deberá repetir estos pasos cada hora.
Opción 2: Obtener un token de actualización del área de juegos de Google OAuth
- Vaya al panel de la API de la consola para desarrolladores de Google.
- Haga clic en Crear un proyecto para crear un nuevo proyecto o seleccione un proyecto existente.
- Si crea un nuevo proyecto, escriba el nombre del proyecto en Nombre del proyecto. Por ejemplo, Scripts.
- Haga clic en Crear.
- En el panel, haga clic en HABILITAR API Y SERVICIOS.
- En el cuadro de búsqueda, escriba hojas y haga clic en Google Sheets API. A continuación, haga clic en HABILITAR.
- Vuelva al panel (haga clic en API & Services) y repita los pasos 3 y 4 para la API de Google Drive.
- Vuelva al panel (haga clic en API & Services) y repita los pasos 3 y 4 para la API de Gmail.
- En panel, haga clic en Credenciales en el panel de navegación izquierdo y, a continuación, haga clic en CONFIGURAR PANTALLA DE CONSENTIMIENTO. Si se le pide que seleccione un tipo de usuario, seleccione Externo y, a continuación, haga clic en Crear.
- Escriba el nombre de la aplicación en el campo Nombre de la aplicación (por ejemplo, Cliente de scripts) y escriba el correo electrónico en los campos que lo solicitan y, a continuación, haga clic en GUARDAR Y CONTINUAR.
- Haga clic en AGREGAR O QUITAR ÁMBITOS, seleccione .. /auth/drive y .. /auth/gmail.send y, a continuación, haga clic en Actualizar.
- Haga clic en GUARDAR Y CONTINUAR
- Haga clic en AGREGAR USUARIOS, escriba su correo electrónico de Google y haga clic en AGREGAR.
- En panel, haga clic en Credenciales en el panel de navegación izquierdo, haga clic en Crear credenciales y seleccione Id. de cliente de Oauth.
- Seleccione Tipo de aplicación web . A continuación, escriba un nombre como Aplicación web Scripts en el campo Nombre . A continuación, agregue https://developers.google.com/oauthplayground a uri de redirección autorizados. Por último, haga clic en Crear.
- Copie el identificador de cliente y el secreto de cliente para usarlos en los pasos 18, 19 y 24 y, a continuación, haga clic en Aceptar.
- Ir al área de juegos de Google OAuth
- Haga clic en el icono de configuración de OAuth 2.0 (parece un engranaje en la esquina superior derecha)
- Active la casilla Usar sus propias credenciales de OAuth
- Pegue el identificador de cliente en el identificador de cliente de OAuth.
- Pegue el secreto de cliente en el secreto de cliente de OAuth.
- En Entrada de sus propios ámbitos, pegue https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
- Haga clic en Autorizar API y siga las indicaciones para proporcionar consentimiento.
Nota:
Al autorizar las API en el área de juegos, si ve un cuadro de diálogo que dice "Esta aplicación no se ha comprobado", haga clic en Avanzadas y, a continuación, vaya a [nombre de la aplicación] (no seguro).
22. Una vez autorizadas las API, haga clic en Código de autorización de Exchange para tokens 23. Copie el token de Refresh token (Actualizar token) para usarlo en el paso 24 24. En soluciones como La detección de anuncios no aprobados, que acceden a los servicios de Google, establezca los campos , clientSecret
y refreshToken
del clientId
objeto de credenciales en los valores que recibió en los pasos 13 y 22.
Opción 3: Obtener un token de actualización mediante un script de PowerShell
- Vaya al panel de la API de la consola para desarrolladores de Google.
- Haga clic en Crear un proyecto para crear un nuevo proyecto o seleccione un proyecto existente.
- Si crea un nuevo proyecto, escriba el nombre del proyecto en Nombre del proyecto. Por ejemplo, Scripts.
- Haga clic en Crear.
- En el panel, haga clic en HABILITAR API Y SERVICIOS.
- En el cuadro de búsqueda, escriba hojas y haga clic en Google Sheets API. A continuación, haga clic en HABILITAR.
- Vuelva al panel (haga clic en API & Services) y repita los pasos 3 y 4 para la API de Google Drive.
- Vuelva al panel (haga clic en API & Services) y repita los pasos 3 y 4 para la API de Gmail.
- En panel, haga clic en Credenciales en el panel de navegación izquierdo y, a continuación, haga clic en CONFIGURAR PANTALLA DE CONSENTIMIENTO. Si se le pide que seleccione un tipo de usuario, seleccione Externo y, a continuación, haga clic en Crear.
- Escriba el nombre de la aplicación en el campo Nombre de la aplicación (por ejemplo, Cliente de scripts) y escriba el correo electrónico en los campos que lo solicitan y, a continuación, haga clic en GUARDAR Y CONTINUAR.
- Haga clic en AGREGAR O QUITAR ÁMBITOS, seleccione .. /auth/drive y .. /auth/gmail.send y, a continuación, haga clic en Actualizar.
- Haga clic en GUARDAR Y CONTINUAR
- Haga clic en AGREGAR USUARIOS, escriba su correo electrónico de Google y haga clic en AGREGAR.
- En panel, haga clic en Credenciales en el panel de navegación izquierdo, haga clic en Crear credenciales y seleccione Id. de cliente de Oauth.
- Seleccione Tipo de aplicación de aplicación de escritorio, escriba un nombre (por ejemplo, Credenciales de cliente de Scripts) y haga clic en Crear.
- Copie el identificador de cliente y el secreto de cliente para usarlos en los pasos 15 y 16 y, a continuación, haga clic en Aceptar.
- Cree un script de PowerShell para obtener el consentimiento del usuario y un token de actualización.
La obtención de un token de acceso requiere el consentimiento del usuario a menos que tenga un token de actualización. Pero dado que Scripts no admite componentes de interfaz de usuario, tendrá que obtener el consentimiento de otra manera. Este PowerShell proporciona una opción para obtener el consentimiento y un token de actualización.
Abra el Bloc de notas o el editor que prefiera y copie el script de PowerShell en el editor. Establezca $clientId
y $clientSecret
en el identificador de cliente y el secreto que recibió al registrar la aplicación (consulte el paso 13).
$clientId = "your-client-id"
$clientSecret = "your-client-secret"
$scopes = "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/gmail.send"
Start-Process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$([string]::Join("%20", $scopes))&access_type=offline&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"
$code = Read-Host "Please enter the code"
$response = Invoke-WebRequest https://www.googleapis.com/oauth2/v4/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&client_secret=$clientSecret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=$code&grant_type=authorization_code"
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token
Guarde el archivo y asígnele el nombre GetTokens.ps1 (puede asignarle el nombre que desee, pero la extensión debe estar .ps1).
Ahora abra una ventana de consola. Para abrir una ventana de consola en Microsoft Windows, escriba el siguiente comando Ejecutar de Windows (<botón> de Windows+r):
cmd.exe
En el símbolo del sistema, vaya a la carpeta donde guardó GetTokens.ps1 y escriba el siguiente comando:
powershell.exe -File .\GetTokens.ps1
Cuando el script de PowerShell se ejecuta correctamente, se inicia una sesión del explorador en la que se escriben las credenciales de Google. Después de dar su consentimiento, la página web contiene el código de concesión (consulte Copia de este código...).
Copie el código de concesión y introdúzcalo en la ventana de la consola en el símbolo del sistema. A continuación, el script de PowerShell devuelve un token de actualización. Copie el token de actualización. Debe tratar el token de actualización como lo haría con una contraseña; si alguien se queda con ella, tiene acceso a los recursos.
- En soluciones como Detectar anuncios no aprobados, que acceden a los servicios de Google, establezca los campos ,
clientSecret
yrefreshToken
delclientId
objeto de credenciales en los valores que recibió en los pasos 13 y 14.