Je suis dev PHP amateur et niveau zéro sur l'API Google.
J'ai problème : Je souhaite que mes patients puissent choisir leur RDV sur mon siteweb en PHP et que ce RDV soit inscrit sur mon Agenda Google sans que les utilisateurs aient besoin d'accorder une autorisation Oauth car il s'agit de MON agenda.
Problème n°1 : la doc du démarrage rapide en PHP de l'API n'existe pas ou plus sur developers.google
> Je suis donc dans le flou complet.
J'ai installé le client PHP dispo sur github sur mon serveur et configuré des identifiants pour ce projet sur console.cloud.google
J'ai demandé à ChatGPT de m'assister sur le type d'authentification nécessaire : il m'a proposé d'abord de n'utiliser que la clé API > ça ne fonctionne pas
// Inclure la bibliothèque cliente Google API
require_once 'google_api/vendor/autoload.php';
// Spécifier votre clé d'API
$apiKey = '***';
// Créer un objet client Google API
$client = new Google_Client();
$client->setApplicationName('Nom de votre application');
$client->setDeveloperKey($apiKey);
$service = new Google_Service_Calendar($client);
// Créez un nouvel événement
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Titre de l\'événement',
'description' => 'Description de l\'événement',
'start' => array(
'dateTime' => '2023-08-06T15:00:00', // Date et heure de début de l'événement
'timeZone' => 'Europe/Paris', // Fuseau horaire de l'événement
),
'end' => array(
'dateTime' => '2023-08-06T16:00:00', // Date et heure de fin de l'événement
'timeZone' => 'Europe/Paris', // Fuseau horaire de l'événement
),
));
// Ajouter l'événement à votre agenda
$calendarId = 'primary'; // Vous pouvez également spécifier l'ID d'un autre agenda.
$event = $service->events->insert($calendarId, $event);
// Afficher l'ID de l'événement ajouté
echo 'Événement ajouté : ' . $event->getId();
Fatal error: Uncaught Google\Service\Exception: { "error": { "code": 401, "message": "API keys are not supported by this API. Expected OAuth2 access token or other authentication credentials that assert a principal...
puis il m'a conseillé de configurer un compte de service (que j'ai normalement bien configuré et avec lequel j'ai partagé mon agenda) avec un fichier d'accès JSON. Cela ne fonctionne pas non plus :
// Inclure la bibliothèque cliente Google API
require_once 'google_api/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig('CHEMIN DU FICHIER JSON');
$service = new Google_Service_Calendar($client);
// Créez un nouvel événement
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Consultation 01',
'description' => 'Consultation ajoutée par ***',
'start' => array(
'dateTime' => '2023-08-06T15:00:00', // Date et heure de début de l'événement
'timeZone' => 'Europe/Paris', // Fuseau horaire de l'événement
),
'end' => array(
'dateTime' => '2023-08-06T16:00:00', // Date et heure de fin de l'événement
'timeZone' => 'Europe/Paris', // Fuseau horaire de l'événement
),
));
// Ajouter l'événement à votre agenda
$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
Fatal error: Uncaught Google\Service\Exception: { "error": { "code": 401, "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. ...
Merci d'avance pour votre aide