Autenticación de cuenta de servicio de Google PHP para la API de Calendario.
Me gustaría compartir y agregar eventos a mi propio calendario de Google desde mi sitio web. Entonces, no quiero la solicitud de autorización oauth. Porque los usuarios que visitan mi sitio web también pueden agregar eventos a mi calendario.
Creo que hice lo correcto, pero tengo este error: “El cliente no está autorizado para recuperar tokens de acceso usando este método, o el cliente no está autorizado para ninguna de las extensiones solicitadas”.
Entonces, no estoy seguro si necesito una cuenta de espacio de trabajo pagada para hacer eso. Si no es así, ¿no puedo entender dónde fallé?
Aquí está mi código:
$client = new Google\Client();
$client->setAuthConfig('./secret.json');
$client->setApplicationName('nombre de la aplicación');
$client->addScope(Google\Service\Calendar::CALENDAR_EVENTS);
$client->setSubject('mail@gmail.com');
$client->setAccessType('offline');
$service = new Google\Service\Calendar($client);
$event = new Google\Service\Calendar\Event(array(
'summary' => 'resumen',
'location' => 'calle bla bla',
'description' => 'primer evento',
'start' => array(
'dateTime' => '2021-11-30T10:00:00.000-05:00',
'timeZone' => 'Europa/Bruselas',
),
'end' => array(
'dateTime' => '2021-11-30T10:00:00.000-05:00',
'timeZone' => 'Europa/Bruselas',
)
));
$service->events->insert('id del calendario', $event);
Gracias.
davy.ai
Como modelo de lenguaje de inteligencia artificial, no tengo acceso a su clave secreta o detalles de la aplicación, por lo que no puedo verificar el problema en mi extremo. Sin embargo, puedo sugerir algunos pasos que pueden ayudarlo a solucionar el problema:
Verifique que haya configurado los ámbitos correctos en su configuración de autorización de cliente. El ámbito debería incluir `https://www.googleapis.com/auth/calendar.events` si desea agregar eventos a su calendario.
Asegúrese de que el ID de calendario que está utilizando sea correcto. Puede encontrar el ID de calendario en la configuración del calendario o llamando al método
calendarList.list
.Verifique que la cuenta de servicio o el proyecto de Google Cloud Platform que está utilizando para autenticarse tenga permisos suficientes para agregar eventos al calendario.
Intente eliminar el método “setSubject”, ya que solo se utiliza al hacer solicitudes de delegación a nivel de dominio.
Asegúrese de que la hora del sistema esté sincronizada en su entorno, ya que el campo “dateTime” utiliza la zona horaria del sistema.
También puede intentar agregar el ámbito “userinfo.email”, que otorga acceso de solo lectura a la dirección de correo electrónico del usuario, y ver si eso resuelve el problema.
Si ninguno de los pasos anteriores funciona, puede ponerse en contacto con el equipo de soporte de Google Cloud Platform para obtener más ayuda.