Google Calendar API:使用Ruby gem更新活动

时间:2014-06-23 10:48:10

标签: ruby google-calendar-api

我正在使用https://github.com/google/google-api-ruby-client连接到不同的Google API,尤其是Google日历API。

创建一个事件,更新它并删除它,大部分时间都可以使用通常可以找到的事件。

如果在上次更新事件日期后尝试更新事件详细信息,则会出现此问题。 在这种情况下,提供的id不够,请求失败并显示错误:

SmhwCalendar :: GoogleServiceException:序列值无效。 400

然而,文档没有提到这样的事情:https://developers.google.com/google-apps/calendar/v3/reference/calendars/update

事件文档确实描述了序列属性,但没有多说:https://developers.google.com/google-apps/calendar/v3/reference/events/update

  1. 更新活动需要什么?
  2. 是否有特定属性可以跟踪创建,更新事件ID以外的事件?
  3. ruby​​ google api客户端如何处理这些?

2 个答案:

答案 0 :(得分:0)

我认为Cannot Decrease the Sequence Number of an Event的回答也适用于此。 序列号不能减少(如果你不提供它,它就像你提供0一样)+某些操作(如时间变化)会使序列号产生碰撞。确保始终使用最新的事件副本(响应中提供的副本)。

答案 1 :(得分:0)

@luc回答非常正确,但这里有一些细节。

Google API文档目前尚不清楚(https://developers.google.com/google-apps/calendar/v3/reference/events/update)。

您应该考虑第一个响应包含序列号0。 第一次更新应包含该序列号(以及标题和描述等)。对该请求的响应将包含一个增量序列号(在本例中为1),您应该在下次更新时存储和重用。

虽然第一次更新意味着序列号为0(和工作)如果你没有通过任何第二次可能仍然通过但第三次可能不会(因为它期望1作为序列)

因此该属性可能看起来是可选的,但实际上它根本不是可选的。