mcg/google-auth-service

There is no license information available for the latest version (dev-master) of this package.

Librerías en PHP para facilitar la autentificación hacia los servicios de Google como Gmail, Google Drive usando las REST APIs de Google.

dev-master 2021-01-05 18:04 UTC

This package is not auto-updated.

Last update: 2024-06-05 10:47:19 UTC


README

Servicios Google Librerias de Autentificación
mcg/google-auth-service

Librerías en PHP para facilitar la autentificación hacia los servicios de Google como Gmail, Google Drive usando las REST APIs de Google.

📝 Table of Contents

🧐 Acerca

Estas clases son de ayuda a simplificar el proceso de obtener el cliente del servicio de google asi como realizar la autentificacion de Google

🏁 Requetimientos

Antes de utilizar esta clase ser requiere crear las credenciales oAuth de google descargando el archivo json de la consola de APIs.

Para mayor informacion utilize la siguiente liga:

https://developers.google.com/identity/protocols/oauth2

Una vez descargado nuesro archivo de credenciales lo agregamos a nuestro proyecto, puede ser en la raiz del proyecto o en alguna carpeta deseada, por defecto , la libreria busca el archivo "./credentials.json" en la raíz del proyecto.

En los siguientes ejemplo se ralizara basandonos que el archivo de credenciales esta en la raíz del proyecto.

Instalacion

Para la instalación se utiliza via composer

composer require mcg/google-auth-service

🔧 Autentificación a GMail por API

Basandonos que el archivo de credenciales esta en la raiz del proyecto y tiene como nombre "credentials.json" se requiere que se agregen los permisos a esta aplicacion y crear un archivo del token que genera la autentificacion oAuth.

Para inicializar esta autentificación se necesita llamar a la pagina de google para que el usuario le de perimiso a la aplicaci&oacute:n.

Para eso utilizamos el siguiente codigo desde nuestra consola:

  $url=AuthGoogleMailService::getActivationURL();
  print_r($url);
  AuthGoogleMailService::setActivationCode(readline());

El resultado sera un archivo json en la raiz de nuestro proyecto con el token oAuth generado por Google.

Si deseamos configurar la ruta de el archivo de credenciales y del token, utilizamos el siguente codigo.

$AuthGoogleMailService= new AuthGoogleMailService();
$AuthGoogleMailService->setCredentialsJsonPath("./credenciales/credentialsGmail.json");
$AuthGoogleMailService->setTokenPath("./tokens/tokenGmail.json");

$MailClient=$AuthGoogleMailService->getClient();

Si deseamos configurar mas propiedades teneos las siguientes

$AuthGoogleMailService= new AuthGoogleMailService();
$AuthGoogleMailService->setCredentialsJsonPath("./credenciales/credentialsGmail.json");
$AuthGoogleMailService->setTokenPath("./tokens/tokenGmail.json");
$AuthGoogleMailService->setClientName("Aplication or client name");
$AuthGoogleMailService->setScope(Google_Service_Gmail::GMAIL_READONLY);
$AuthGoogleMailService->setAccessType("offline");
$AuthGoogleMailService->setSetPrompt("select_account consent");

$MailClient=$AuthGoogleMailService->getClient();

Obtener Correos de Gmail por API

Para obtener los correos de GMAIL por API utilizamos el siguiente ejemplo

  //Obtenemos el servicio de gmail
  $GoogleClient = (new AuthGoogleMailService())->getClient();
  $Gmailservice = new Google_Service_Gmail($GoogleClient);

  //parametros para la obtencion de los correos
  $options = array('labelIds' => 'INBOX', 'maxResults' => 10, 'q' => 'is:unread');
  //Obtiene los mensajes
  $messages = $Gmailservice->users_messages->listUsersMessages('me', $options);
  
  foreach ($messages as $message) {
    //Obtiene lo escencial del mensaje
    $Emailmessage = $Gmailservice->users_messages->get('me', $message['id'], ['format' => 'FULL']);
    foreach($Emailmessage['payload']->getHeaders() as $header){
      print_r($header->name." : ".$header->value . PHP_EOL);
    }
  }