Estou com uma dúvida mas não sei exatamente aonde seria o melhor local, pois é sobre o Google Calendar e também sobre PHP.
Estou tentando fazer o convite de uma pessoa para um evento no Google Calendar onde é feito a criação do evento sem problemas, porém na parte do convite é retornado o seguinte erro: Fatal error: Uncaught Google\Service\Exception: { "error": { "errors": [ { "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } ], "code": 403, "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } } in D:\amwebagencia\testes-\agendamento-google\vendor\google\apiclient\src\Http\REST.php on line 134. Já fiz pesquisas a respeito desse erro mas até então sem resultados relevantes.
require_once 'vendor/autoload.php';
// Autorização - Está funcionando corretamente
$client = new Google_Client();
$client->setAuthConfig('json-google-calendar/arquivo.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$service = new Google_Service_Calendar($client);
// Criação de evento - Está funcionando corretamente
$calendarId = 'bbb@gmail.com'; // ID da agenda (por padrão, usa a agenda primária)
$evento = new Google_Service_Calendar_Event(array(
'summary' => 'Título do Evento 22',
'description' => 'Descrição do Evento',
'start' => array(
'dateTime' => '2023-06-11T16:02:00',
'timeZone' => 'America/Sao_Paulo',
),
'end' => array(
'dateTime' => '2023-06-11T17:02:00',
'timeZone' => 'America/Sao_Paulo',
),
));
$eventoInserido = $service->events->insert($calendarId, $evento);
echo 'Evento inserido com sucesso. ID do Evento: ' . $eventoInserido->getId();
// Convidar pessoa para evento - Está retornando o erro: Fatal error: Uncaught Google\Service\Exception: { "error": { "errors": [ { "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } ], "code": 403, "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } } in D:\amwebagencia\testes-\agendamento-google\vendor\google\apiclient\src\Http\REST.php on line 134
$eventId = $eventoInserido->getId(); // ID do evento específico
$email = 'xxx@gmail.com'; // E-mail da pessoa que você deseja convidar
$attendee = new Google_Service_Calendar_EventAttendee(array(
'email' => $email,
));
$event = $service->events->get('bbb@gmail.com', $eventId);
$attendees = $event->getAttendees();
$attendees[] = $attendee;
$event->setAttendees($attendees);
$updatedEvent = $service->events->update('bbb@gmail.com', $eventId, $event, array('sendUpdates' => 'all'));
echo 'Pessoa convidada com sucesso para o evento.';