Obtener credenciales--spatie google calendar event

 

https://www.youtube.com/watch?v=qLJ17Qho0O4

https://laravelpackages.net/ecasanes/laravel-google-calendar-php-6

https://github.com/spatie/laravel-google-calendar

spatie google calendar event

https://github.com/spatie/laravel-google-calendar

https://www.youtube.com/watch?v=q3imho6ZBhY&t=3s

https://www.youtube.com/watch?v=qLJ17Qho0O4&t=1219s

https://medium.com/@ReasonDigital/how-to-integrate-google-calendar-with-a-laravel-site-2f011d0e010f

Este paquete hace que trabajar con Google Calendar sea muy fácil. Una vez que se ha configurado, puede hacer estas cosas:

use Spatie\GoogleCalendar\Event;

//create a new event
$event = new Event;

$event->name = 'A new event';
$event->startDateTime = Carbon\Carbon::now();
$event->endDateTime = Carbon\Carbon::now()->addHour();
$event->addAttendee(['email' => 'youremail@gmail.com']);
$event->addAttendee(['email' => 'anotherEmail@gmail.com']);

$event->save();

// get all future events on a calendar
$events = Event::get();

// update existing event
$firstEvent = $events->first();
$firstEvent->name = 'updated name';
$firstEvent->save();

$firstEvent->update(['name' => 'updated again']);

// create a new event
Event::create([
   'name' => 'A new event',
   'startDateTime' => Carbon\Carbon::now(),
   'endDateTime' => Carbon\Carbon::now()->addHour(),
]);

// delete an event
$event->delete();

Spatie es una agencia de diseño web con sede en Amberes, Bélgica. Encontrará una descripción general de todos nuestros proyectos de código abierto en nuestro sitio web .

Instalación

Puede instalar el paquete a través de composer:

composer require spatie/laravel-google-calendar

A continuación, el proveedor de servicios debe estar registrado:

'providers' => [
    ...
    Spatie\GoogleCalendar\GoogleCalendarServiceProvider::class,
];

Opcionalmente Spatie\GoogleCalendar\GoogleCalendarFacadese debe registrar:

'aliases' => [
	...
    'GoogleCalendar' => Spatie\GoogleCalendar\GoogleCalendarFacade::class,
    ...
]

Debes publicar la configuración con este comando:

php artisan vendor:publish --provider="Spatie\GoogleCalendar\GoogleCalendarServiceProvider"

Esto publicará el archivo llamado google-calendar.phpen su directorio de configuración con este contenido:

return [
    /*
     * Path to the json file containing the credentials.
     */
    'service_account_credentials_json' => storage_path('app/google-calendar/service-account-credentials.json'),

    /*
     *  The id of the Google Calendar that will be used by default.
     */
    'calendar_id' => env('GOOGLE_CALENDAR_ID'),
];

Cómo obtener las credenciales para comunicarse con Google Calendar

Lo primero que deberá hacer es obtener algunas credenciales para usar las API de Google. Supongo que ya ha creado una cuenta de Google y ha iniciado sesión. Diríjase a la consola API de Google y haga clic en "Seleccionar un proyecto" en el encabezado.

1

A continuación, debemos especificar qué API puede consumir el proyecto. En la lista de API disponibles, haga clic en "Google Calendar API". En la siguiente pantalla, haga clic en "Habilitar".

2

Ahora que ha creado un proyecto que tiene acceso a Calendar API, es hora de descargar un archivo con estas credenciales. Haga clic en "Credenciales" en la barra lateral. Deberá crear una "clave de cuenta de servicio".

3

En la siguiente pantalla, puede dar un nombre a la cuenta de servicio. Puedes nombrarlo como quieras. En la identificación de la cuenta de servicio, verá una dirección de correo electrónico. Usaremos esta dirección de correo electrónico más adelante en esta guía. Seleccione "JSON" como tipo de clave y haga clic en "Crear" para descargar el archivo JSON.

4

Guarde el json dentro de su proyecto Laravel en la ubicación especificada en la service_account_credentials_jsonclave del archivo de configuración de este paquete. Debido a que el archivo json contiene información potencialmente confidencial, no recomiendo enviarlo a su repositorio de git.

Ahora que todo está configurado en el sitio de API, necesitaremos configurar algunas cosas en el sitio de Google Calendar. Dirígete a Google Calendar y mira la configuración del calendario con el que deseas trabajar a través de PHP. En la pestaña "Compartir este calendario", agregue la identificación de la cuenta de servicio que se mostró al crear las credenciales en el sitio de la API.

5

Abra la pestaña "Detalles del calendario" para ver la identificación del calendario. Debe especificar esa identificación en el archivo de configuración.

6

Uso

Obtener eventos

Puede obtener todos los eventos simplemente llamando Event::get();y devolverá todos los eventos del próximo año. Un evento viene en forma de un Spatie\GoogleCalendar\Eventobjeto.

La firma completa de la función es:

public static function get(Carbon $startDateTime = null, Carbon $endDateTime = null, array $queryParameters = [], string $calendarId = null): Collection

Los parámetros que puede pasar $queryParametersse enumeran en la documentación en los documentos de listla API de Google Calendar .

Acceder a las fechas de inicio y finalización de un evento

Puede usar estos captadores para recuperar la fecha de inicio y finalización como instancias de Carbon :

$events = Event::get();

$events[0]->startDate;
$events[0]->startDateTime;
$events[0]->endDate;
$events[0]->endDateTime;

Creando un evento

Puedes simplemente actualizar un Spatie\GoogleCalendar\Event-objeto

$event = new Event;

$event->name = 'A new event';
$event->startDateTime = Carbon\Carbon::now();
$event->endDateTime = Carbon\Carbon::now()->addHour();

$event->save();

También puedes llamar createestáticamente:

Event::create([
   'name' => 'A new event',
   'startDateTime' => Carbon\Carbon::now(),
   'endDateTime' => Carbon\Carbon::now()->addHour(),
]);

Esto creará un evento con una hora específica de inicio y finalización. Si desea crear un evento de día completo, debe usar startDateendDateen lugar de startDateTimeendDateTime.

$event = new Event;

$event->name = 'A new full day event';
$event->startDate = Carbon\Carbon::now();
$event->endDate = Carbon\Carbon::now()->addDay();

$event->save();

Obtener un solo evento

Google asigna una identificación única a cada evento. Puede obtener esta identificación obteniendo eventos usando el getmétodo y obteniendo la idpropiedad en un Spatie\GoogleCalendar\Eventobjeto:

// get the id of the first upcoming event in the calendar.
$eventId = Event::get()->first()->id;

Puede usar esta identificación para obtener un solo evento de Google:

Event::find($eventId);

Actualización de un evento

Fácil, solo cambie algunas propiedades y llame save():

$event = Event::find($eventId);

$event->name = 'My updated title';
$event->save();

Alternativamente, puede usar el método de actualización:

$event = Event::find($eventId)

$event->update(['name' => 'My updated title']);

Eliminación de un evento

¡Nada de eso!

$event = Event::find($eventId);

$event->delete();

Limitaciones

La API de Google Calendar ofrece muchas opciones. Este paquete no es compatible con todos ellos. Por ejemplo, los eventos recurrentes no se pueden gestionar correctamente con este paquete. Si te limitas a crear eventos con un nombre y una fecha, deberías estar bien.

Actualización de v1 a v2

La única diferencia importante entre v1v2es que, bajo el capó, se usa Google API v2 en lugar de v1. Estos son los pasos necesarios para actualizar:

  • cambiar el nombre del archivo de configuración de laravel-google-calendaragoogle-calendar
  • en el archivo de configuración, cambie el nombre de la client_secret_jsonclave aservice_account_credentials_json

registro de cambios

Consulte CHANGELOG para obtener más información sobre lo que ha cambiado recientemente.

Pruebas

composer test

contribuyendo

Por favor vea CONTRIBUYENDO para más detalles.

Seguridad

Si descubre algún problema relacionado con la seguridad, envíe un correo electrónico a freek@spatie.be en lugar de utilizar el rastreador de problemas.

postales

Puede utilizar este paquete, pero si llega a su entorno de producción, le agradeceremos que nos envíe una postal desde su ciudad natal, mencionando cuál de nuestros paquetes está utilizando.

Nuestra dirección es: Spatie, Samberstraat 69D, 2060 Amberes, Bélgica.

Publicamos todas las postales recibidas en el sitio web de nuestra empresa .

Créditos

Muchas gracias a Sebastiaan Luca por su gran ayuda para crear la v2 de este paquete.

Apoyanos

Spatie es una agencia de diseño web con sede en Amberes, Bélgica. Encontrará una descripción general de todos nuestros proyectos de código abierto en nuestro sitio web .

¿Tu negocio depende de nuestras contribuciones? Contáctanos y apóyanos en Patreon . Todos los compromisos se dedicarán a la asignación de mano de obra en mantenimiento y cosas nuevas e increíbles.

Licencia


Obtener credenciales


https://m.dotdev.co/how-to-setup-and-use-the-google-calendar-api-e6426688771f

Lo primero que deberá hacer es obtener algunas credenciales para usar las API de Google. Supongo que ya ha creado una cuenta de Google y ha iniciado sesión. Diríjase al sitio de la API de Google y haga clic en "Seleccionar un proyecto" en el encabezado. Elija "Crear un nuevo proyecto" en el menú que se abre. Puedes darle a ese proyecto el nombre que quieras.

Captura de pantalla 2016-05-09 a las 18.55.44

A continuación, debemos especificar qué API puede consumir el proyecto. En la lista de API disponibles, haga clic en "Google Calendar API". En la siguiente pantalla, haga clic en "Habilitar".

Captura de pantalla 2016-05-09 a las 18.56.07

Ahora que ha creado un proyecto que tiene acceso a Calendar API, es hora de descargar un archivo con estas credenciales. Haga clic en "Credenciales" en la barra lateral. Deberá crear una "clave de cuenta de servicio".

Captura de pantalla 2016-05-09 a las 18.56.48

En la siguiente pantalla, puede dar un nombre a la cuenta de servicio. Puedes nombrarlo como quieras. En la identificación de la cuenta de servicio, verá una dirección de correo electrónico. Usaremos esta dirección de correo electrónico más adelante en esta guía. Seleccione "JSON" como tipo de clave y haga clic en "Crear" para descargar el archivo JSON.

Captura de pantalla 2016-05-09 a las 18.57.18

Configuración del calendario de Google

Ahora que todo está configurado en el sitio de API, necesitaremos configurar algunas cosas en el sitio de Google Calendar. Dirígete a Google Calendar y mira la configuración del calendario con el que deseas trabajar a través de PHP. En la pestaña "Compartir este calendario", agregue la identificación de la cuenta de servicio que se mostró al crear las credenciales en el sitio de la API.

Captura de pantalla 2016-05-09 a las 19.10.52

Abra la pestaña "Detalles del calendario" para ver la identificación del calendario. Necesitaremos esta identificación más adelante.

Captura de pantalla 2016-05-09 a las 19.19.10

Accediendo al calendario en PHP

Ahora que todo está configurado en Google, finalmente escribamos algo de PHP. En su proyecto, asegúrese de requerir google/apiclient en su composer.json. Este fragmento de código se puede usar para obtener todos los eventos en su calendario:

$cliente = nuevo Google_Client(); 

// $credentialsJson debe contener la ruta al archivo json descargado del sitio de la API
$credentials = $client->loadServiceAccountJson(
$credentialJson,
'https://www.googleapis.com/auth/calendar'
);

$cliente->setAssertionCredentials($credenciales);

$servicio = nuevo Google_Service_Calendar($cliente);

// $calendarId debe contener la identificación del calendario que se encuentra en la página de configuración del calendario
$events = $service->events->listEvents($calendarId);

En el ejemplo anterior, se obtendrán todos los eventos. Por supuesto, la API puede hacer mucho más. Eche un vistazo a los documentos de la API para saber qué es posible.

Para concluir

Configurar y usar la API de calendario y las otras API de Google no es tan difícil. La clave que falta es la documentación adecuada. Espero que en el futuro Google agregue algunos tutoriales fáciles de seguir y ejemplos prácticos a sus documentos. Me tomó alrededor de una hora aprender y configurar todo lo mencionado en esta publicación. Con una buena documentación, el tiempo requerido sería de alrededor de 5 minutos (y habría mucha menos frustración).

Si está utilizando Laravel, le alegrará saber que actualmente estoy desarrollando un paquete que hace que trabajar con Google Calendar sea muy fácil. Mi objetivo es hacer que este código funcione:

usa \Espacio\GoogleCalendar\Evento; 

//creando eventos
$evento = new Event();
$evento->titulo = 'Mi nuevo evento'
$evento->inicio = Carbon::now();
$evento->fin = Carbono::ahora()->addHour();
$evento->guardar();

//obteniendo todos los eventos
$allEvents = Event::all();

//actualizando un evento
$event = $allEvents->first();
$evento->nombre = 'nombre actualizado';
$evento->guardar();

//borrando un evento
$allEvents->last()->delete();

No planeo admitir todas las funciones de la API nativa, pero si solo necesita la funcionalidad básica, este será el paquete para usted.



Cómo administrar eventos en un calendario de Google con Laravel 8

Laravel-google-calendar es un paquete de Spatie que hace que trabajar con Google Calendar sea muy fácil. Una vez que se haya configurado, puede crear, eliminar y actualizar cosas fácilmente en Google Calendar.

Instalación

Puede instalar el paquete a través de composer:

composer require spatie/laravel-google-calendar

Debes publicar la configuración con este comando:

php artisan vendor:publish --provider="Spatie\GoogleCalendar\GoogleCalendarServiceProvider"

Esto publicará un archivo llamado google-calendar.phpen su directorio de configuración.

Uso

Obtener eventos

Puede obtener todos los eventos simplemente llamando Event::get();y devolverá todos los eventos del próximo año. Un evento viene en forma de un Spatie\GoogleCalendar\Eventobjeto.

La firma completa de la función es:

public static function get(Carbon $startDateTime = null, Carbon $endDateTime = null, array $queryParameters = [], string $calendarId = null): Collection

Los parámetros que puede pasar $queryParametersse enumeran en la documentación de la lista en los documentos de la API de Google Calendar .

Acceder a las fechas de inicio y fin de un evento

Puede utilizar estos captadores para recuperar las fechas de inicio y finalización como instancias de Carbon :

$events = Event::get();

$events[0]->startDate;
$events[0]->startDateTime;
$events[0]->endDate;
$events[0]->endDateTime;

Creando un evento

Puedes simplemente crear una nueva Spatie\GoogleCalendar\Event-object

$event = new Event;

$event->name = 'A new event';
$event->startDateTime = Carbon\Carbon::now();
$event->endDateTime = Carbon\Carbon::now()->addHour();

$event->save();

También puede llamar a crear estáticamente:

Event::create([
   'name' => 'A new event',
   'startDateTime' => Carbon\Carbon::now(),
   'endDateTime' => Carbon\Carbon::now()->addHour(),
]);

Esto creará un evento con una hora específica de inicio y finalización. Si desea crear un evento de día completo, debe usar startDate y endDateen lugar de startDateTimeendDateTime.

$event = new Event;

$event->name = 'A new full day event';
$event->startDate = Carbon\Carbon::now();
$event->endDate = Carbon\Carbon::now()->addDay();

$event->save();

Puede crear un evento basado en una cadena de texto simple como esta:

$event = new Event();

$event->quickSave('Appointment at Somewhere on April 25 10am-10:25am');

// statically
Event::quickCreate('Appointment at Somewhere on April 25 10am-10:25am');

Obtener un solo evento

Google asigna una identificación única a cada evento. Puede obtener esta identificación obteniendo eventos usando el método get y obteniendo la propiedad de identificación en un Spatie\GoogleCalendar\Event-object:

// get the id of the first upcoming event in the calendar.
$eventId = Event::get()->first()->id;

// you can also get the id after creating the event, then you can save it to database.
$event = new Event;
$newEvent = $event->save();
echo $newEvent->id; // displey the event id

Puede usar esta identificación para obtener un solo evento de Google:

Event::find($eventId);

Actualización de un evento

Fácil, solo cambie algunas propiedades y llame save():

$event = Event::find($eventId);

$event->name = 'My updated title';
$event->save();

Alternativamente, puede usar el método de actualización:

$event = Event::find($eventId)

$event->update(['name' => 'My updated title']);

Eliminación de un evento

¡Nada de eso!

$event = Event::find($eventId);

$event->delete();

Puedes obtener las credenciales para comunicarte con Google Calendar, aquí tienes la documentación completa de este paquete en Github .

Comentarios

Entradas populares de este blog

reloj obs---datetime.lua

10 videojuegos gratis para aprender JavaScript en línea

Filtrando por fecha