【问题标题】:Google Calendar API Python - Import Multiple EventsGoogle Calendar API Python - 导入多个事件
【发布时间】:2017-10-11 03:54:29
【问题描述】:

我已经按照this 指导,但是下面的代码

event1 = events[0]
event2 = events[1]
event =  service.events().import_(calendarId='blah@group.calendar.google.com', body=event1).execute()
event =  service.events().import_(calendarId='blah@group.calendar.google.com', body=event2).execute()

其中 events 是我的事件数组,一旦我尝试导入第二个事件,似乎会覆盖第一个事件。如果我只运行第一个事件声明,则会添加该事件,但是一旦我添加第二个,它会覆盖第一个,并只显示第二个。

【问题讨论】:

  • 不会使用相同的变量名(您对 event1 和 event2 都使用 'event')覆盖?这是预期的行为,不是吗?
  • 对我来说很有意义,但我链接的那个指南就是这样做的,所以我认为这是添加多个事件的正确方法。
  • 您链接到的指南使用 events().insert 方法,而您似乎正在使用 events().import 方法。
  • 当我使用插入时,我得到这个错误。 “请求的标识符已经存在。”导入工作,它只是覆盖任何以前的事件。

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


【解决方案1】:

执行返回一个事件资源

event =  service.events().import_(calendarId='blah@group.calendar.google.com', body=event1).execute()

事件变量现在将等于 event1 的事件资源。

event =  service.events().import_(calendarId='blah@group.calendar.google.com', body=event2).execute()

事件变量现在将等于 event2 的事件资源。

如果您想要返回结果,那么我建议您将响应变量名称更改为 event1Response 和 event2Response 之类的名称。

【讨论】:

  • 执行是文档应该做的事情here,但我不需要任何返回给我的东西。我只想导入多个事件?
  • 然后运行两次
  • 当我运行它两次时,第二个事件会覆盖第一个事件。如果我运行一次,第一个事件就会出现。
  • 你知道,我认为这是因为这个 uid 对于每个事件都是相同的。 "iCalUID": "originalUID" 我不知道如何为每个事件生成不同的 uid...
【解决方案2】:

是的,所以您需要一个唯一的 icaluid,否则 Google 日历将删除具有该 uid 的任何其他活动。我只是导入了时间,并使用 time.time() 作为 icaluid。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多