Календар Google 403 Запрещенный обмен PHP-сервером на сервер

<?php include('lead1.php'); require_once __DIR__ . '/vendor/autoload.php'; global $link; $emailmsgsql = "SELECT * FROM psleads WHERE agreeid = '6'"; $msgreqsres = mysqli_query($link, $emailmsgsql); // or die(mysql_error()0); $msgreqs = $msgreqsres->fetch_assoc(); $start = $msgreqs['contractbegindate'] . ' ' . $msgreqs['contractbegintime']; $end = $msgreqs['contractenddate'] . ' ' . $msgreqs['contractendtime']; $startDT = new DateTime($start, new DateTimeZone('Pacific/Honolulu')); $endDT = new DateTime($end, new DateTimeZone('Pacific/Honolulu')); $startDTw3c = $startDT->format(DateTime::W3C); $endDTw3c = $endDT->format(DateTime::W3C); putenv('GOOGLE_APPLICATION_CREDENTIALS=./service-account.json'); define('CREDENTIALS_PATH', '~/calendar-php.json'); define('CLIENT_SECRET_PATH', './client_secret.json'); //define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json'); $client = new Google_Client(); $client->setApplicationName("Paradise_Sound_Booking_Calendar"); $client->addScope('https://www.googleapis.com/auth/calendar'); $client->setAuthConfig(CLIENT_SECRET_PATH); $client->setClientId('532085378494-s908fs5mu4rf2e2s60cecgaprg9pem1p.apps.googleusercontent.com'); $client->setDeveloperKey("XXXXX");//flo.gd $client->useApplicationDefaultCredentials(); // Load previously authorized credentials from a file. function expandHomeDirectory($path) { $homeDirectory = getenv('HOME'); if (empty($homeDirectory)) { $homeDirectory = getenv('HOMEDRIVE') . getenv('HOMEPATH'); } return str_replace('~', realpath($homeDirectory), $path); } $credentialsPath = expandHomeDirectory(CREDENTIALS_PATH); if (file_exists($credentialsPath)) { $accessToken = json_decode(file_get_contents($credentialsPath), true); } else { // Request authorization from the user. $authUrl = $client->createAuthUrl(); printf("Open the following link in your browser:\n%s\n", $authUrl); print 'Enter verification code: '; //$authCode = trim(fgets(STDIN)); $authCode = 'Manually pasted return code into script here'; // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); // Store the credentials to disk. if(!file_exists(dirname($credentialsPath))) { mkdir(dirname($credentialsPath), 0700, true); } file_put_contents($credentialsPath, json_encode($accessToken)); printf("Credentials saved to %s\n", $credentialsPath); } $client->setAccessToken($accessToken); // Refresh the token if it's expired. if ($client->isAccessTokenExpired()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); file_put_contents($credentialsPath, json_encode($client->getAccessToken())); } $service = new Google_Service_Calendar($client); $event = new Google_Service_Calendar_Event(array( 'summary' => 'Booked Event ' . $msgreqs['contractbegindate'], 'start' => array( 'dateTime' => $startDTw3c, //'dateTime' => '2015-05-28T09:00:00-07:00', 'timeZone' => 'Pacific/Honolulu', ), 'end' => array( 'dateTime' => $endDTw3c, 'timeZone' => 'Pacific/Honolulu', ) )); $calendarId = 'iddnpsbinrifod2826eqo1kmoo@group.calendar.google.com'; $eventres = $service->events->insert($calendarId, $event); echo json_encode($eventres); ?> 

Итак, вот мой PHP-код, который я использую для проверки вставки событий в MY google calendar.

Я думал, что могу использовать только ключ API, но у google, похоже, есть этот convuted способ делать OAUTH, который я просто не могу понять. Я вижу все свои 403 ошибки в моей консоли разработчиков API.

У кого-нибудь есть рабочий код, чтобы делать простые вставки событий в мой календарь.

КОНТЕКСТ:

Я получу IPN из paypal (сделано), и это запустит этот скрипт, который введет событие в МОЙ календарь, а не пользователи. Может ли кто-нибудь помочь мне, не обращаясь к документам разработчиков Google? Они кажутся скудными, и я читал их снова и снова, но не смог решить мою проблему.

Вот ошибка, которую я получаю:

Неустранимая ошибка: исключить исключение «Google_Service_Exception» с сообщением «{« error »: {« errors »: [{« domain »:« global »,« reason »:« forbidden »,« message »:« Forbidden »}], code ": 403," message ":" Forbidden "}} 'в /home/dahfrench/flo.gd/src/Google/Http/REST.php:118 Трассировка стека: # 0 /home/dahfrench/flo.gd/ src / Google / Http / REST.php (94): Google_Http_REST :: decodeHttpResponse (Object (GuzzleHttp \ Psr7 \ Response), Object (GuzzleHttp \ Psr7 \ Request), 'Google_Service _…') # 1 [внутренняя функция]: Google_Http_REST :: doExecute (объект (GuzzleHttp \ Client), объект (GuzzleHttp \ Psr7 \ Request), 'Google_Service _…') # 2 /home/dahfrench/flo.gd/src/Google/Task/Runner.php(181 ): call_user_func_array (Array, Array) # 3 /home/dahfrench/flo.gd/src/Google/Http/REST.php(58): Google_Task_Runner-> run () # 4 /home/dahfrench/flo.gd/src /Google/Client.php(789): Google_Http_REST :: выполнить (объект (GuzzleHttp \ Client), объект (GuzzleHttp \ Psr7 \ Request), 'Google_Service _…', массив) # 5 /home/dahfrench/flo.gd /src/Google/Service/Resource.php ( 232): Goo в /home/dahfrench/flo.gd/src/Google/Http/REST.php в строке 118

Related of "Календар Google 403 Запрещенный обмен PHP-сервером на сервер"