Conéctese a la API de Google con Powershell

Vamos a conectarnos a la API de Google con OAuth2.0 y el cmdlet Powershell Invoke-RestMethod.

Antes de que podamos comenzar a crear secuencias de comandos en Powershell, primero debemos obtener un ClientId, ClientSecret, AuthCode y finalmente, los tokens de acceso y actualización.

Me tomó medio día descubrir cómo conectarme a dónde obtener qué, así que espero que ustedes (y chicas) puedan ponerse en marcha en 10 minutos.

Obtener el acceso a la API de Google y tokens de actualización

Ir Consola de desarrolladores de Google y cree un nuevo proyecto haciendo clic en la barra superior en Proyecto API y luego el + para crear un nuevo proyecto. Asigne un nombre a su proyecto y haga clic en crear.

Cuando haya terminado, haga clic de nuevo en Proyecto API, haga clic en todo y seleccione su proyecto recién creado.

Verá el tablero vacío, debemos seleccionar con qué API queremos interactuar, quiero obtener datos de Real Time Analytics, así que seleccioné la API de Analytics.

Haga clic en Habilitar, después de lo cual será redirigido de nuevo al tablero.

Como se indica en el tablero, haga clic en Crear credenciales e ingrese lo siguiente:

  • ¿Qué API estás usando? > El que hayas elegido antes
  • ¿Desde dónde llamará a la API? > Navegador web (Javascript)
  • W¿A qué datos accederá? > Datos de usuario
  • URI de redireccionamiento autorizado > http://localhost/oauth2callback ! Importante
  • Ingrese un nombre para su ID de cliente de OAuth 2.0, no importa qué.
  • Cree la pantalla de consentimiento de OAuth 2.0 y haga clic en Listo. Obtendremos las credenciales de la página de credenciales.
PowerShell de la API de Google

Obtener un código de autorización

Con el código de autorización, podemos obtener el acceso y actualizar tokens.

Solo necesitamos estos, así que he tomado el camino fácil simplemente abriendo el punto final en el navegador, autenticándome y eliminando el código de la barra de direcciones.

Primero, necesitamos el Identificación del cliente, vaya a la página Credencial y copie el ID de cliente. Parece 864312357012-ftkcasd2f23123plh0tfivvsvasd32123k6b.apps.googleusercontent.com, péguelo en la siguiente URL y ábralo en su navegador:

# Replace <CLIENT_ID_HERE> with your client id
https://accounts.google.com/o/oauth2/auth?redirect_uri=<CLIENT_ID_HERE>&scope=https://www.googleapis.com/auth/analytics.readonly&approval_prompt=force&access_type=offline

# In the comments below, Phani mentioned that the above url is wrong and should be:
https://accounts.google.com/o/oauth2/auth?client_id=<replacemewithclientid>&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code&redirect_uri=<replacemewithredirecturi>&access_type=offline&approval_prompt=force

# I have no time to test it, but if you get an error with the original URL, then check the one mentioned by Phani.

Asegúrese de utilizar las mismas URL de redireccionamiento que configuramos cuando creamos las credenciales. http://localhost/oauth2devolución de llamada

Después de autenticarse, será redirigido a http://localhost/oauth2callback?code=4/QhUXhB*********_***********u8jKZkjhsd2# . Copie el código sin el # al final y guárdelo en algún lugar, lo necesitaremos más tarde.

Este código solo es válido durante una hora y si el la solicitud de token de acceso falla más tarde de alguna manera, deberá obtener un nuevo código de autenticación. Así que tenlo en mente.

Obtener los tokens de acceso y actualización

Para intercambiar el código de Autorización por los tokens, usaremos Powershell para hacer una llamada a https://www.googleapis.com/oauth2/v4/token.

Complete el código de autorización, ClientId, Client Secret y redirija Uri desde Google Developer Console y ejecute el script.

Almacenará los dos tokens en los archivos de texto para que pueda usarlos más adelante.

$requestUri = "https://www.googleapis.com/oauth2/v4/token"

$body = @{
	code=<authcode>;
	client_id=<clientId>;
	client_secret=<clientSecret>;
	redirect_uri=<redirectUrl>;
	grant_type="authorization_code"; # Fixed value
};

$tokens = Invoke-RestMethod -Uri $requestUri -Method POST -Body $body;

# Store refreshToken
Set-Content $PSScriptRoot"\refreshToken.txt" $tokens.refresh_token

# Store accessToken
Set-Content $PSScriptRoot"\accessToken.txt" $tokens.access_token

Actualizar el token de acceso

El token de acceso solo es válido durante una hora, por lo que deberá obtener uno nuevo con el token de actualización. El token de actualización de Google no caduca, así que guárdelo en un lugar seguro. Use la llamada a continuación para obtener un nuevo token de acceso:

$refreshTokenParams = @{
	client_id=$clientId;
  	client_secret=$clientSecret;
	refresh_token=$refreshToken;
	grant_type="refresh_token"; # Fixed value
}

$tokens = Invoke-RestMethod -Uri $requestUri -Method POST -Body $refreshTokenParams

Recuperando datos de la API de Google

Entonces, ahora que tenemos los tokens, podemos obtener datos de Google. Para empezar echa un vistazo a https://developers.google.com/oauthplayground/ y https://developers.google.com/apis-explorer/

Para darle un ejemplo, así es como recuperar los usuarios actuales (en tiempo real) de Analytics:

# Request URL for Analytics Realtime and requesting the activeUsers
$viewId = 12345678 (Get it from the analytics admin page > view settings)
$requestUri = "https://www.googleapis.com/analytics/v3/data/realtime?ids=ga:$viewId&metrics=rt:activeUsers"

Invoke-RestMethod -Headers @{Authorization = "Bearer $accessToken"} -Uri $requestUri -Method GET -ContentType 'application/json'

Actualizar: Compruebe este Google Api Explorer: https://ga-dev-tools.appspot.com/query-explorer/. Genera un URI de consulta API para usted.

Otros artículos relacionados

Cómo restablecer los nombres de las carpetas de Outlook con resetfoldernames

Cómo restablecer los nombres de las carpetas de Outlook con resetfoldernames

El idioma de los nombres de las carpetas de Outlook coincidirá con el idioma de Outlook de forma predeterminada. Pero ...
Leer Más
Reseña de Hornetsecurity 365 Total Protection

Reseña de Hornetsecurity 365 Total Protection

#patrocinado Los correos electrónicos de phishing se están volviendo más efectivos y sofisticados en estos días. Incluso con capacitación de ...
Leer Más
Solucione el código de error 17006 al agregar el producto a la instalación existente de Office 365

Solucione el código de error 17006 al agregar el producto a la instalación existente de Office 365

Cuando desee agregar un programa de Office a una instalación existente de Office 365 ProPlus con PDQ Deploy o SCCM, ...
Leer Más
Cómo arreglar ERR_CONNECTION_TIMED_OUT

Cómo arreglar ERR_CONNECTION_TIMED_OUT

El error ERR_CONNECTION_TIMED_OUT en Chrome o Edge indica que el sitio web que intenta visitar no respondió. Entonces, para resolver ...
Leer Más
Revisión de copia de seguridad de Afi.ai Office 365

Revisión de copia de seguridad de Afi.ai Office 365

Probablemente el proveedor de copias de seguridad de Office 365 más joven y rápido del mercado sea Afi.ai. Este nuevo ...
Leer Más
Tema personalizado para Citrix Storefront 2.6 y Netscaler 10.x

Tema personalizado para Citrix Storefront 2.6 y Netscaler 10.x

La semana pasada reemplazamos nuestra Citrix Secure Gateway y la interfaz web con Storefront y Netscaler. De forma predeterminada, el ...
Leer Más

Deja un comentario