google event php api google-api google-oauth google-api-php-client

php - Google Calendar API v3-No crear evento(Autenticación de servidor a servidor)



google calendar event (1)

Se trata de crear el evento en el calendario propiedad de la cuenta de servicio. Si desea administrarlo, debe compartir el calendario consigo mismo (!):

$scope = new Google_AclRuleScope(); $scope->setType(''user''); $scope->setValue(''YOUR-EMAIL-HERE''); $rule = new Google_AclRule(); $rule->setRole(''owner''); $rule->setScope($scope); $result = $service->acl->insert(''primary'', $rule);

Referencia: ¿Quién posee los calendarios creados por la cuenta de servicio a través de Google Calendar API y cómo se pueden compartir?

PD: hay una nueva versión de la biblioteca de cliente PHP.

Entonces, después de cavar durante varias horas, no encuentro una solución. Estoy intentando crear un evento en mi calendario principal utilizando la v3 de la API de calendario de Google, pero no estoy experimentando el comportamiento esperado.

Estoy usando la autenticación de servidor a servidor en esta instancia. Para hacer eso creé las credenciales de la cuenta de servicio, moví mi par de claves al mismo directorio que mi script de prueba y configuré la API de Google Calendar en "Activado" dentro de la consola de desarrollador.

A continuación encontrará el código en cuestión.

El resultado esperado (como lo menciona Google) es que luego de que un evento se haya creado / agregado exitosamente a un calendario, se devolverá un objeto o matriz de eventos (a su gusto). En cualquier caso, recibo el objeto Evento o matriz, pero el evento no aparece en el calendario. Si trato de visitar el "htmlLink" que se proporciona con el conjunto de datos de eventos creados, recibo un mensaje de error que dice "Este evento no existe".

Me imagino que dado que recibo un objeto Event con todos los detalles necesarios, que fue exitoso; pero no cigarro. Intenté jugar con la propiedad de "visibilidad" del evento (configurándolo como "público"), pero todavía no tuve suerte.

Realmente apreciaría si alguien puede echarme una mano aquí.

[Código]

require_once __DIR__ . ''/GoogleAPI/Google_Client.php''; require_once __DIR__ . ''/GoogleAPI/contrib/Google_CalendarService.php''; $google = new Google_Client(); $google->setUseObjects(TRUE); $google->setClientId(%my_client_id%); $google->setAssertionCredentials( new Google_AssertionCredentials( %my_client_id_email%, array( ''https://www.googleapis.com/auth/calendar'', ''https://www.googleapis.com/auth/calendar.readonly'' ), file_get_contents(__DIR__ . ''/google_key.p12'') ) ); $service = new Google_CalendarService($google); $event = new Google_Event(); $event->setSummary(''Test Appointment''); $event->setLocation(''Testing''); $event->setVisibility(''public''); $start = new Google_EventDateTime(); $start->setDateTime(''2014-03-28T10:00:00.000-05:00''); $event->setStart($start); $end = new Google_EventDateTime(); $end->setDateTime(''2014-03-28T10:30:00.000-05:00''); $event->setEnd($end); $createdEvent = $service->events->insert(''primary'', $event, array(''maxAttendees'' => 1, ''sendNotifications'' => FALSE)); var_dump($createdEvent);

=============================================== ========================

[Resultado]

object(Google_Event)#20 (56) { ["anyoneCanAddSelf"]=> NULL ["__attendeesType":protected]=> string(20) "Google_EventAttendee" ["__attendeesDataType":protected]=> string(5) "array" ["attendees"]=> NULL ["attendeesOmitted"]=> NULL ["colorId"]=> NULL ["created"]=> string(24) "2014-03-28T18:14:59.000Z" ["__creatorType":protected]=> string(19) "Google_EventCreator" ["__creatorDataType":protected]=> string(0) "" ["creator"]=> object(Google_EventCreator)#21 (4) { ["displayName"]=> NULL ["email"]=> string(75) "%my_client_id_email%" ["id"]=> NULL ["self"]=> bool(true) } ["description"]=> NULL ["__endType":protected]=> string(20) "Google_EventDateTime" ["__endDataType":protected]=> string(0) "" ["end"]=> object(Google_EventDateTime)#24 (3) { ["date"]=> NULL ["dateTime"]=> string(20) "2014-03-28T15:30:00Z" ["timeZone"]=> NULL } ["endTimeUnspecified"]=> NULL ["etag"]=> string(52) ""2DaeHpkENZGECFHdcr5l8tYxjD4/MTM5NjAzMDQ5OTI1MTAwMA"" ["__extendedPropertiesType":protected]=> string(30) "Google_EventExtendedProperties" ["__extendedPropertiesDataType":protected]=> string(0) "" ["extendedProperties"]=> NULL ["__gadgetType":protected]=> string(18) "Google_EventGadget" ["__gadgetDataType":protected]=> string(0) "" ["gadget"]=> NULL ["guestsCanInviteOthers"]=> NULL ["guestsCanModify"]=> NULL ["guestsCanSeeOtherGuests"]=> NULL ["hangoutLink"]=> NULL ["htmlLink"]=> string(178) "https://www.google.com/calendar/event?eid=ZXNrYjdzNHBvZzlidnVhYjdqbmY2bWI3aWMgNjI1NDE0OTkwNTU3LW10cmpwaDZzNzRyNTVrbmFpc2p0OHVhY3ZqY3IxYzRxQGRldmVsb3Blci5nc2VydmljZWFjY291bnQuY29t" ["iCalUID"]=> string(37) "[email protected]" ["id"]=> string(26) "eskb7s4pog9bvuab7jnf6mb7ic" ["kind"]=> string(14) "calendar#event" ["location"]=> string(7) "Testing" ["locked"]=> NULL ["__organizerType":protected]=> string(21) "Google_EventOrganizer" ["__organizerDataType":protected]=> string(0) "" ["organizer"]=> object(Google_EventOrganizer)#22 (4) { ["displayName"]=> NULL ["email"]=> string(75) "%my_client_id_email%" ["id"]=> NULL ["self"]=> bool(true) } ["__originalStartTimeType":protected]=> string(20) "Google_EventDateTime" ["__originalStartTimeDataType":protected]=> string(0) "" ["originalStartTime"]=> NULL ["privateCopy"]=> NULL ["recurrence"]=> NULL ["recurringEventId"]=> NULL ["__remindersType":protected]=> string(21) "Google_EventReminders" ["__remindersDataType":protected]=> string(0) "" ["reminders"]=> object(Google_EventReminders)#25 (4) { ["__overridesType":protected]=> string(20) "Google_EventReminder" ["__overridesDataType":protected]=> string(5) "array" ["overrides"]=> NULL ["useDefault"]=> bool(true) } ["sequence"]=> int(0) ["__sourceType":protected]=> string(18) "Google_EventSource" ["__sourceDataType":protected]=> string(0) "" ["source"]=> NULL ["__startType":protected]=> string(20) "Google_EventDateTime" ["__startDataType":protected]=> string(0) "" ["start"]=> object(Google_EventDateTime)#23 (3) { ["date"]=> NULL ["dateTime"]=> string(20) "2014-03-28T15:00:00Z" ["timeZone"]=> NULL } ["status"]=> string(9) "confirmed" ["summary"]=> string(16) "Test Appointment" ["transparency"]=> NULL ["updated"]=> string(24) "2014-03-28T18:14:59.251Z" ["visibility"]=> string(6) "public" }