Realice la autenticación del navegador mediante solicitudes REST – API de Gmail.
Me gustaría enviar mensajes de correo electrónico con nuestros correos corporativos proporcionados por Gmail. Para hacerlo, me gustaría usar la API de Gmail con comandos REST (lanzados básicamente con un código procedural PHP, por motivos de herencia).
Tengo ese código:
Voy a esta URL:
// https://accounts.google.com/o/oauth2/auth?client_id = mi_identificador_de_cliente & redirect_uri = urn:ietf:wg:oauth:2.0:oob & scope = https://www.googleapis.com/auth/gmail.send & response_type = code
// y obtengo un token como este: 4/1AX4XfWgmW0ZdxXpJn8YzkVeDs3oXZUHyJcR7abE2TuqQrcmo4c1W02ALD4I
/*
echo GoogleAuthCurl (& quot; GET & quot;, & #39; & #39;, array (
& # 39; client_id & # 39; => $GOOGLE_CLIENT_ID,
& # 39; redirect_uri & # 39; =& gt; & # 39; urn:ietf:wg:oauth:2.0:oob & # 39 ;,
& # 39; scope & # 39; =& gt; & # 39; https://www.googleapis.com/auth/gmail.send & # 39;,
& # 39; response_type & # 39; =& gt; & # 39; código & # 39;
), array ());
entonces puedo usar solicitudes en cURL para obtener mi token de acceso:
curl \
–solicitud POST \
–datos & quot; código = [código de autenticación del enlace de autorización] & client_id = [ID de cliente de la aplicación] & client_secret = [secreto de cliente de la aplicación] & redirect_uri = urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
https://accounts.google.com/o/oauth2/token */
$ tokenJson = json_decode (GoogleTokenCurl (& quot; POST & quot;, & # 39; & # 39;, array (), array (
& # 39; code & # 39; =& gt; & # 39; 4/1AX4XfWiEWngRngF7qryjtkcOG1otVtisYpjHnej1E54Pujcrchef8REvdt0 & # 39 ;,
& # 39; client_id & # 39; =& gt; $GOOGLE_CLIENT_ID,
& # 39; client_secret & # 39; =& gt; $GOOGLE_CLIENT_SECRET,
& # 39; redirect_uri & # 39; =& gt; & # 39; urn:ietf:wg:oauth:2.0:oob & # 39 ;,
& # 39; grant_type & # 39; =& gt; & # 39; authorization_code & # 39;
)
));
print_r ($ tokenJson);
Hasta aquí, he recibido la autorización para mi encabezado. Mi problema está en el primer paso (con el consentimiento solicitado al usuario). Me gustaría poder realizar este paso sin poner mi URL en el navegador, validar dos pantallas para otorgar acceso antes de obtener el código de autorización.
También estoy interesado en consejos para crear mensajes de Gmail con solicitudes REST impulsadas por curl. Encontré una colección de Postman sobre todas las acciones que la API de Gmail puede hacer, pero uno o dos ejemplos de llamadas no harían daño:)
¡Gracias!
davy.ai
Para evitar tener que obtener manualmente el código de autorización de la pantalla de consentimiento, puede utilizar la API de Google OAuth2 para obtener un token de acceso de forma programática.
Para ello, deberá seguir estos pasos:
Aquí hay un ejemplo de cómo podría obtener un token de acceso utilizando cURL en PHP:
Para enviar un correo electrónico utilizando la API de Gmail, puede construir una carga útil JSON que contenga los datos del mensaje y enviar una solicitud POST al punto final messages.send. Aquí hay un ejemplo de cómo hacerlo utilizando cURL en PHP:
Tenga en cuenta que deberá completar los valores apropiados para el ID de cliente, clave secreta de cliente, código de autorización y datos del mensaje en los ejemplos anteriores.