谷歌日历API PHP致命错误

时间:2013-04-17 21:50:02

标签: php google-calendar-api

我每次都会收到“Connect Me”链接,即使点击并连接并刷新浏览器也是如此。 另外,我收到此错误,

正如下面的回答所示,我已做出更改,并在此处添加。这造成了这个新错误:

致命错误:在####。org / google-api-php-client / src / io / Google_REST中显示错误'Google_ServiceException',并显示消息'错误调用GET https://www.googleapis.com/calendar/v3/users/me/calendarList?key=AIzaSyDXm2epulkFrOgluO0dppEBknimmvpfKxY :( 401)需要登录' .php:66堆栈跟踪:#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}在第66行的/######.org/google-api-php-client/src/io/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;
}
}

1 个答案:

答案 0 :(得分:1)

看来你正在使用$ service,你应该有$ cal。

所以$calendarList = $service->calendarList->listCalendarList();应为$calendarList = $cal->calendarList->listCalendarList();

$calendarList = $service->calendarList->listCalendarList($optParams);应为$calendarList = $cal->calendarList->listCalendarList($optParams);