【问题标题】:Edit Events of an App using Google Calendar API and Service Account使用 Google Calendar API 和服务帐户编辑应用程序的事件
【发布时间】:2022-11-16 07:09:59
【问题描述】:

我正在开发一个 Web 应用程序,您基本上可以在其中创建事件并加入其他人的事件。

当人们登录时,他们可以将他们的帐户与他们的 Google 议程相关联。

当人们从我的应用程序进行一些更新时,一切正常。但不是,当他们通过他们的 Google Agenda 帐户进行操作时。

因此,我想找到一种方法来在用户直接从他们的 Google 议程编辑事件时更新我的​​应用程序上的事件。

我想通过以下方式进行,但我不知道是否可行:

  • 创建一个具有特定邮件地址的服务帐户(我们称之为服务@account.com)
  • 每次在我的网络应用程序上创建一个事件时,电子邮件服务@account.com也收到事件
  • 这样,每次组织者更改活动(日期、地点或删除)时,服务@account.com接收信息(带有新 ICS 的邮件)
  • 然后,我会在我的网络应用程序上发送信息以相应地更改事件

可以那样做吗? 我知道我也可以创建一个 Chrome 扩展程序或一个 Google 日历插件,但我想按照我刚才描述的方式也为 Outlook 日历做这件事。

谢谢你的建议

【问题讨论】:

    标签: google-apps-script google-calendar-api service-accounts


    【解决方案1】:

    如果不确切了解您的应用程序如何工作或您正在寻找什么(文档来源?代码示例?),很难解决这个问题,但这里有一些一般性建议:

    • 您使用服务帐户的示例可以工作。如果服务帐户已经是访客,那么您只需使用events.list 观看服务帐户的日历并保持您的应用程序更新。问题是您的应用程序将无法更改事件,除非全部其他客人也可以进行更改。这对您来说可能重要也可能无关紧要,但是已经有更好的方法来处理这个问题。
    • 您说您的应用请求访问用户的日历。如果您请求offline access,那么您可以通过syncing他们定期使用您的应用程序来跟踪他们日历上的更改。您将其标记为“Google Apps 脚本”,因此您可以查看此 library 以请求 OAuth 离线访问。我会说这是最好的方法因为在用户授予对应用程序的访问权限后,您可以保持同步并代表他们对事件进行更改。一个可能的问题是,如果您不希望您的应用程序显示不是在其中创建的事件,那么您将不得不想出一种方法来跟踪您的事件以过滤掉其余的事件。
    • 最后一个选项可能是使用服务帐户的日历作为创建事件的主日历,然后只允许用户从您的应用程序进行更改,或者授予所有来宾自由编辑事件的权限。这样您也只需要查看服务帐户的日历即可保持同步。
    • 我不熟悉 Outlook,但他们也有一个 Calendar API,我希望它以类似的方式工作。如果您不想处理两个 API,我想服务帐户方法可以同时处理这两个 API,但它仍然不理想。

    资料来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2012-12-02
      • 1970-01-01
      • 2012-08-05
      相关资源
      最近更新 更多