有什么方法可以从外部应用程序修改在 Google 日历中创建的事件吗?
Is there any way to modify an event created at Google Calendar from external app?
我们正在构建一个事件管理应用程序,我们正在研究是否可以让我们的用户直接从 Google 日历创建事件。目前我们的工作流程是:
- 用户在 Google 日历
中创建了一个事件
- 用户将我们的电子邮件地址添加为活动嘉宾
- 我们收到来自 Google 日历的活动通知邮件,并在我们的系统中注册该活动。
现在我们希望允许用户在我们的应用仪表板上编辑事件详细信息(具体来说,描述和位置),问题来了:我们如何更新用户日历中的事件?
我尝试使用 iMiP mails but failed, I tried to increase sequence number, and change ORGANIZER
field to our own mail address, even if I marked the event as modifiable by guest in Google Calendar, the event couldn't be updated by our mail. (Update: Attached latest version of my test code,我的邮件中是否遗漏了任何内容?)我们还尝试将更新的事件作为附件中的常规 ICS 文件发送(直接通过 GMail),但也失败了。
另一方面,如果我们在事件 ICS 文件中更改 UID
,将其作为常规附件发送,并将其导入到 Google 日历,则可以更新此(新)事件通过具有相同 UID
的后续 ICS 文件。但是我们不想以这种方式实现,因为它会在用户的日历中创建一个新事件。
所以我的问题是,除了使用 Google 的日历 API(如果没有其他好方法来实现它,这是我们最后的手段),还有什么方法可以更新来自我们应用程序的用户事件?
您的应用程序能够编辑事件的唯一方法是通过 Google Calendar API。
您将必须使用 Oauth2 对用户进行身份验证才能访问相关日历。使用 events.list 搜索事件可能会添加 q tearm 以搜索超过日期的事件。
获得相关事件后,您应该查看 events.patch patch lets you update just selected fields in the event rather then a full event.update,这将要求您更新事件中的所有字段。
我们正在构建一个事件管理应用程序,我们正在研究是否可以让我们的用户直接从 Google 日历创建事件。目前我们的工作流程是:
- 用户在 Google 日历 中创建了一个事件
- 用户将我们的电子邮件地址添加为活动嘉宾
- 我们收到来自 Google 日历的活动通知邮件,并在我们的系统中注册该活动。
现在我们希望允许用户在我们的应用仪表板上编辑事件详细信息(具体来说,描述和位置),问题来了:我们如何更新用户日历中的事件?
我尝试使用 iMiP mails but failed, I tried to increase sequence number, and change ORGANIZER
field to our own mail address, even if I marked the event as modifiable by guest in Google Calendar, the event couldn't be updated by our mail. (Update: Attached latest version of my test code,我的邮件中是否遗漏了任何内容?)我们还尝试将更新的事件作为附件中的常规 ICS 文件发送(直接通过 GMail),但也失败了。
另一方面,如果我们在事件 ICS 文件中更改 UID
,将其作为常规附件发送,并将其导入到 Google 日历,则可以更新此(新)事件通过具有相同 UID
的后续 ICS 文件。但是我们不想以这种方式实现,因为它会在用户的日历中创建一个新事件。
所以我的问题是,除了使用 Google 的日历 API(如果没有其他好方法来实现它,这是我们最后的手段),还有什么方法可以更新来自我们应用程序的用户事件?
您的应用程序能够编辑事件的唯一方法是通过 Google Calendar API。
您将必须使用 Oauth2 对用户进行身份验证才能访问相关日历。使用 events.list 搜索事件可能会添加 q tearm 以搜索超过日期的事件。
获得相关事件后,您应该查看 events.patch patch lets you update just selected fields in the event rather then a full event.update,这将要求您更新事件中的所有字段。