我正在使用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
答案 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作为序列)
因此该属性可能看起来是可选的,但实际上它根本不是可选的。