繁体   English   中英

PHP Google Calendar API-更新事件

[英]PHP Google Calendar API - Updating an event

这是一个新手问题,我还不习惯Google API


你好

我使用的是Google提供的代码( https://developers.google.com/google-apps/calendar/downloads ),其中包含一些示例(最初是因为它看起来是最新的)。

如示例“ calendar / simple.php”所示,我已成功检索日历(OAuth2设置正确)。

之后,我正在执行此操作并起作用(这是不必要的代码,仅用于检查事件是否可以正确检索而没有任何错误):

$test = $cal->events->get("calendar@gmail.com","longeventcodegivenbygoogle");

现在,我希望能够设置特定事件的一些值。

$event = new Event();
$event->setLocation('Somewhere');
$test = $cal->events->update("calendar@gmail.com","longeventcodegivenbygoogle",$event);

但这给了我:

( ! ) Fatal error: Uncaught exception 'apiServiceException' with message 'Error calling PUT https://www.googleapis.com/calendar/v3/calendars/calendar@gmail.com/events/longeventcodegivenbygoogle?key=myapikey: (400) Required' in C:\wamp\www\test\Gapi3\src\io\apiREST.php on line 86
( ! ) apiServiceException: Error calling PUT https://www.googleapis.com/calendar/v3/calendars/calendar@gmail.com/events/longeventcodegivenbygoogle?key=myapikey: (400) Required in C:\wamp\www\test\Gapi3\src\io\apiREST.php on line 86

我做错了什么?

谢谢你的帮助。

为了更新事件,您首先要检索它,然后更改其属性的值,而不是实例化一个新事件。

尝试以下代码:

$event = $cal->events->get("calendar@gmail.com","longeventcodegivenbygoogle");
$event->setLocation('Somewhere');
$updated = $cal->events->update("calendar@gmail.com", $event->getId(), $event);

真正的解决方案是由Claudio Cherubino提供的,通过调用事件类来创建事件对象。

默认情况下,似乎get()不会返回事件对象,而是返回一个数组。

$event = new Event($cal->events->get("calendar@gmail.com","longeventcodegivenbygoogle"));
$event->setLocation('Somewhere');
$updated = new Event($cal->events->update("calendar@gmail.com", $event->getId(), $event));

如果不使用update()或get()提供的数组来创建事件,则该事件将不起作用,因为这是这些调用返回的简单数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM