【问题标题】:Is there any way to modify an event created at Google Calendar from external app?有什么方法可以从外部应用程序修改在 Google 日历中创建的活动?
【发布时间】:2017-02-22 20:46:41
【问题描述】:

我们正在构建一个活动管理应用,并且正在研究是否可以让我们的用户直接从 Google 日历创建活动。目前我们的工作流程是:

  1. 用户在 Google 日历中创建活动
  2. 用户将我们的电子邮件地址添加为活动嘉宾
  3. 我们会收到来自 Google 日历的活动通知邮件,并在我们的系统中注册活动。

现在我们希望允许用户在我们的应用仪表板上编辑事件详细信息(特别是描述和位置),问题来了:我们如何更新用户日历中的事件?

我尝试使用iMiP 邮件但失败了,我尝试增加序列号,并将ORGANIZER 字段更改为我们自己的邮件地址,即使我在 Google 日历中将活动标记为可由访客修改,该活动也无法我们的邮件不会更新。 (更新:附加latest version of my test code,我的邮件中是否遗漏了任何内容?)我们还尝试将更新的事件作为附件中的常规 ICS 文件(直接通过 GMail)发送,但也失败了。

另一方面,如果我们在事件 ICS 文件中更改 UID,将其作为常规附件发送,然后将其导入 Google 日历,则此(新)事件可以由后续 ICS 文件以相同的@更新987654325@。但是我们不想以这种方式实现,因为它会在用户的日历中创建一个新事件。

所以我的问题是,除了使用 Google 的日历 API(如果没有其他好的方法来实现这一点,这是我们最后的手段),有没有办法从我们的应用程序更新用户的事件?

【问题讨论】:

    标签: oauth calendar google-api google-calendar-api google-oauth


    【解决方案1】:

    您的应用程序能够编辑事件的唯一方法是通过Google Calendar API

    您必须使用 Oauth2 验证用户才能访问相关日历。使用events.list 搜索事件可能会添加 q tearm 以搜索过期事件。

    一旦您有问题的事件,您应该查看events.patch 补丁让您只更新事件中的选定字段,而不是完整的event.update,这将要求您更新事件中的所有字段。

    【讨论】:

    • 谢谢,您是否知道有任何文档提到 Google 日历除了使用日历 API 之外不支持此功能?
    • 以编程方式访问任何 Google API 的唯一方法是通过 API 本身。不然你会怎么做?我想你可以尝试打开一个网络浏览器到谷歌日历网站,让他们在那里编辑,但它不会很漂亮,我不知道你有什么类型的应用程序,如果可能的话。
    • 实际上RFC6047RFC2446 描述了一种通过电子邮件更新事件的方法(就像我在问题中提到的那样)。但是我们问了谷歌的某个人,他说不支持 iMiP,所以我想我们还是要使用谷歌 API。
    • 我没有意识到 Google 支持 iCalendar,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多