クリックして接続し、ブラウザを更新した後でも、毎回「Connect Me」リンクを取得します。また、このエラーが発生します。
以下の回答で示唆されているように、変更を加えてここに追加しました。これにより、次の新しいエラーが作成されました。
致命的なエラー: メッセージ「GET の呼び出し中にエラーが発生しましたhttps://www.googleapis.com/calendar/v3/users/me/calendarList?key=AIzaSyDXm2epulkFrOgluO0dppEBknimmvpfKxYを含むキャッチされない例外「Google_ServiceException」: ####.org/google-api-php-client/src/io/Google_REST.php:66 の (401) ログインが必要です スタック トレース: #0 ####.org/google-api-php- client/src/io/Google_REST.php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 ####.org/google-api-php-client/src/service/Google_ServiceResource.php(177) : Google_REST::execute(Object(Google_HttpRequest)) #2 #####/google-api-php-client/src/contrib/Google_CalendarService.php(154): Google_ServiceResource->__call('list', Array) # 3 ####/avl/index2.php(44): Google_CalendarListServiceResource->listCalendarList() #4 {main} が /######.org/google-api-php-client/src/io/ でスローされる66 行目の Google_REST.php
<?php
require_once '../google-api-php-client/src/Google_Client.php';
require_once '../google-api-php-client/src/contrib/Google_CalendarService.php';
session_start();
$client = new Google_Client();
$client->setApplicationName("#####");
// Visit https://code.google.com/apis/console?api=calendar to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('327425587799.apps.googleusercontent.com');
$client->setClientSecret('*******');
$client->setRedirectUri('http://www.######.net/oauth2callback');
$client->setDeveloperKey('*******');
$client->setUseObjects(true);
$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$calList = $cal->calendarList->listCalendarList();
print "<h1>Calendar List</h1><pre>" . print_r($calList, true) . "</pre>";
$_SESSION['token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
$calendarList = $cal->calendarList->listCalendarList();
while(true){
foreach($calendarList->getItems()as $calendarListEntry){
echo $calendarListEntry->getSummary();
}
$pageToken = $calendarList->getNextPageToken();
if($pageToken){
$optParams = $cal->calendarList->listCalendarList($optParams);
}else{
break;
}
}