更新和活动开始/结束时间Google Calendar,v3 api

时间:2014-05-23 16:38:03

标签: google-api google-calendar-api google-api-php-client

我正在使用Google API PHP客户端和Google日历。

我现在遇到创建事件的问题,但是当我尝试更新日期时间开始/结束时,调用失败并且事件未更新。

我已成功更新摘要,但无法更新开始/结束时间。

private function _update_google_event($eventId = '', $updateData = array())
{
if(strlen($eventId) == 0 || empty($updateData)) return false;

$calendar = $this->_get_gcal();
//First get the event
$event = $calendar->events->get($this->calendar_id, $eventId);
var_dump($event->getId());

if(isset($updateData['summary'])) {
  $event->setSummary($updateData['summary']);
}
if(isset($updateData['location'])) {
  $event->setLocation($updateData['location']);
}
var_dump($event->getEnd());
/*
if(isset($updateData['start'])) {
  $start = new Google_Service_Calendar_EventDateTime();
  $start->setDateTime($updateData['start']);
  $event->setStart($start);
}
*/
if(isset($updateData['end'])) {
  var_dump(new Google_EventDateTime());
  $end = new Google_Service_Calendar_EventDateTime();
  var_dump($end->setDateTime($updateData['end']));
  $end->setDateTime($updateData['end']);
  var_dump($event->setEnd($end));
}

//Update Sequence
$event->setSequence($event->getSequence() + 1);

echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
//var_dump($event);
//Send the update request
//$updatedEvent = new Google_Service_Calendar_Event($calendar->events->update($this->calendar_id, $event->getId(), $event));
$updatedEvent = $calendar->events->update($this->calendar_id, $event->getId(), $event);
echo $updatedEvent->getUpdated();

return false;
}

我已经看到一些关于更新事件的堆栈溢出问题,提到需要更新序列号,所以我已经这样做了,但它没有改变开始/结束时间的任何内容。

任何提示/指示都将非常感激。 如果任何其他细节可以提供帮助,请询问。

谢谢!

1 个答案:

答案 0 :(得分:0)

我意识到我的问题不在于函数,而是在我自己传递的数据中。

$ updateData ['start']和$ updateData ['end']作为DateTime对象传递。我通过使用DateTime :: format然后将其传递给函数来解决它。