2016-09-29 42 views
3

我正尝试使用PHP API更新Google日历。我已成功创建Google日历事件并自动获取事件的ID,但是当我尝试更新事件时,出现此错误:正在更新Google日历 - 致命错误:致电未定义函数dateTime()

PHP致命错误:调用未定义的函数dateTime()in public_html /googleapi/calendarupdate.php上线45它是指行:

$event->setStart.dateTime($startdatetime); 

这是我当前的PHP的错误代码:

<?php 

header('Content-type: application/json'); 

require_once __DIR__ . '/google-api-php-client/src/Google/autoload.php'; 

$summary = $_POST["summary"]; 
$location = $_POST["location"]; 
$description = $_POST["description"]; 
$startdatetime = $_POST["startdatetime"]; 
$enddatetime = $_POST["enddatetime"]; 
$clientemail = $_POST["clientemail"]; 
$privatekey = $_POST["privatekey"]; 
$useremail = $_POST["useremail"]; 
$calendarid = $_POST["calendarid"]; 



$client_email = $clientemail; 
$private_key = file_get_contents($privatekey); 
$scopes = array('https://www.googleapis.com/auth/calendar'); 
$user_to_impersonate = $useremail; 
$credentials = new Google_Auth_AssertionCredentials(
    $client_email, 
    $scopes, 
    $private_key, 
    'notasecret',         // Default P12 password 
    'http://oauth.net/grant_type/jwt/1.0/bearer', // Default grant type 
    $user_to_impersonate 
); 
$client = new Google_Client(); 
$client->setAssertionCredentials($credentials); 
if ($client->getAuth()->isAccessTokenExpired()) { 
    $client->getAuth()->refreshTokenWithAssertion(); 
} 

$service = new Google_Service_Calendar($client); 

$event = $service->events->get($useremail, $calendarid); 
$event->setSummary($summary); 
$event->setLocation($location); 
$event->setStart.dateTime($startdatetime); 
$event->setStart.timeZone('America/Los_Angeles'); 
$event->setEnd.dateTime($enddatetime); 
$event->setEnd.timeZone('America/Los_Angeles'); 
$event->setDescription($description); 

$updatedEvent = $service->events->update($useremail, $event->getId(), $event); 

echo json_encode($updatedEvent); 

我的PHP代码是基于关闭谷歌的API的找到文档here

+0

设置开始日期是一种您需要传递日期的方法$ event-> setStart($ date); – DaImTo

回答

0

好的,我真的设法弄清楚了。我不得不改变线路:

$event->setStart.dateTime($startdatetime); 

这样:

$event->start->setDateTime($startdatetime); 

我做同样的事情一般为最终日期时间,除非它说开始,我只是把结束。只是测试它,它完美的工作。帮助我的网站可以找到here

相关问题