我在自己的日历中列出了Google事件。一切正常,直到我从approval_prompt
将auto
更改为force
。每当用户登录时,我当然不需要刷新令牌(如果我错了,请更正我,我是Google API的新手)。
另一个奇怪的事情是我仍然可以创建,更新,删除所有事件。它只是没有列出Google日历事件。
以下是代码:
的login.php
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->setScopes(array(
'email',
'https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/plus.me'
));
$client->setApprovalPrompt('auto');
$client->setAccessType("offline");
calendar.php:
var events = [];
<?php
foreach ($results->getItems() as $event) {
$now = new DateTime();
$unformatted_start = new DateTime($event->start->dateTime);
$start = $event->start->dateTime;
$end = $event->end->dateTime;
$allDay = false;
if (($event->getStart()->getDate())!= NULL) {
$start = (new DateTime($event->getStart()->getDate()))->format('Y/m/d');
$end = (new DateTime($event->getEnd()->getDate()))->format('Y/m/d');
$allDay = true;
}
$summary =$event->getSummary();
$event_url = $event->getHtmlLink();
$is_matching = false;
foreach ($allEventIds as $id) {
//id->e_google_id above in the file
if($event->getId()==$id->e_google_id){
$is_matching = true;
break;
}
}
if(!$is_matching){
?>
events.push({title:"<?php echo $summary;?>",start:"<?php echo $start;?>",end:"<?php echo $end;?>",color: "<?php if($now>$unformatted_start){echo '#f3867e';}else {echo '#F44336';}?>",textColor: 'white', url:"<?php echo $event_url;?>", allDay:"<?php echo $allDay;?>" })
<?php }}
?>