【问题标题】:Can I use Google Calendar API v3 to access someone else's public calendar without auth?我可以使用 Google Calendar API v3 在没有身份验证的情况下访问其他人的公共日历吗?
【发布时间】:2017-11-26 23:58:40
【问题描述】:

如果有人共享了他们的 Google 日历(例如,使用在网页上显示的小部件),那么我可以获得 calendarID,例如:p75ig3ni1smg4267qg0j0nhodc@group.calendar.google.com

我想编写一个 Alexa 应用程序(在 NodeJS 中)以提供来自该日历的信息。 (我使用这个样本作为模型:https://developers.google.com/google-apps/calendar/quickstart/nodejs)。

我有两个问题:

1) 我可以在不要求日历所有者执行某些步骤的情况下在 Google API 中访问它吗

2) 由于日历是公开的,我是否必须在 API 中进行身份验证才能访问它?上面的示例假设您需要进行身份验证。

【问题讨论】:

    标签: google-calendar-api


    【解决方案1】:

    Q1) 我可以在不要求日历所有者执行某些步骤的情况下在 Google API 中访问它吗?

    • A1。是的。当日历的所有者共享日历时,其他用户可以使用 Google Calendar API 访问日历 .那时,所有者不需要做任何事情。

    Q2) 由于日历是公开的,我是否必须在 API 中进行身份验证才能访问它?

    • A2。是的。当非所有者的用户知道共享日历的 ID 时,用户可以通过对每个帐户进行授权来访问该 ID。每个用户都可以通过 Quickstart 脚本中使用的授权过程来使用。
      • 您可以使用here 对此进行测试。当你把其他用户的日历的ID,如果日历是共享的,你可以访问它。

    如果我误解了你的问题,我很抱歉。

    【讨论】:

    • 谢谢。是的,那个测试奏效了。我之前尝试过类似的列表事件:developers.google.com/google-apps/calendar/v3/reference/events/… - 它说找不到,但这次它起作用了。它之前可能一直在使用 URL 编码的 id。我在 NodeJS 中有一个错误,但我明天会在另一个问题中问这个问题。
    • 没有简单的 URL 查询可以在不进行身份验证的情况下返回事件吗?
    • @NealWalters 很高兴您的问题得到了解决。当您发布下一个问题时,我也想确认一下。关于简单 URL,您可以使用https://www.google.com/calendar/event?eid=##### 访问。 eid 可以通过calendar.events.get 检索到。
    • 如果我尝试使用 URL 查询列出事件:googleapis.com/calendar/v3/calendars/… 我得到 "domain": "usageLimits", "reason": "dailyLimitExceededUnreg", "message": "Daily Limit for Unauthenticated Use已超过。继续使用需要注册。",
    • @NealWalters 对于给您带来的不便,我深表歉意。 https://www.googleapis.com/calendar/v3/calendars/p75ig3ni1smg4267qg0j0nhodc%40group.calendar.google.com/events 是 API。所以需要登录。但是从 API 中获取 eid 后,用户无需登录即可使用带有 eid 的 URL。
    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2021-07-14
    • 2014-05-27
    • 2015-03-07
    相关资源
    最近更新 更多