Google Calendar API PHP致命错误 [英] Google Calendar API PHP fatal error

查看:42
本文介绍了Google Calendar API PHP致命错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即使每次单击并连接并刷新浏览器后,我也会始终获得连接我"链接. 另外,我也会收到此错误

I get the "Connect Me" link every time, even after clicking and connecting, and refreshing browser. Also, I get this error,

如以下答案中所建议,我进行了更改,并将其添加到此处.这造成了这个新错误:

As suggested in answer below, I have made the changes, and added them here. this has created this new error:

致命错误:未捕获的异常"Google_ServiceException",消息为调用GET错误

Fatal error: Uncaught exception 'Google_ServiceException' with message 'Error calling GET https://www.googleapis.com/calendar/v3/users/me/calendarList?key=AIzaSyDXm2epulkFrOgluO0dppEBknimmvpfKxY: (401) Login Required' in ####.org/google-api-php-client/src/io/Google_REST.php:66 Stack trace: #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} thrown in /######.org/google-api-php-client/src/io/Google_REST.php on line 66

<?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;
}
}

推荐答案

似乎您在使用$ service的位置应该有$ cal.

It appears you are using $service where you should have $cal.

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

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

这篇关于Google Calendar API PHP致命错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆