以编程方式订阅外部ical

问题描述 投票:0回答:2

通过 Google 日历 UI,用户可以将外部 iCAL 日历添加到其日历列表中。

通过 CalendarList 检索日历时,不包含日历 URL。此外,似乎无法将外部 iCal 日历添加到用户的 CalendarList 中。

是这样吗?有没有办法以编程方式让 Google 日历用户订阅外部 iCal 源?


日历 UI 在内部使用以下 URL 添加外部日历:

https://calendar.google.com/calendar/addcalendarfromurl

此 URL 通过 POST 或 GET 获取以下参数:

  • curl:日历 url(url 编码)。
  • cimp:UI 将其设置为 true,不确定它的作用。
  • cpub:true|false - 公开日历
  • secid:来自客户端的安全 ID(可能是会话 ID)。不指定此项会导致 403 错误。

如果用户未登录日历,他们将被重定向到 Google 登录屏幕。如果我有办法生成 secid(也许是 OAUTH?),我可以添加一个链接以允许用户自动添加日历。

google-api google-calendar-api google-apps icalendar
2个回答
0
投票

不幸的是,Google Calendar API 似乎没有任何具有导入 .ics 功能的更新。 工单自 2007 年以来已记录,但截至目前仍没有任何解决方案。

我能找到的唯一选项是在用户的 Google 日历 Web UI 中手动导入 .ics 文件。 将事件导入 Google 日历支持页面讨论了该问题。

第 2 步:将事件导入 Google 日历

导出活动后,您可以将其导入 Google 日历。

  1. 在计算机上打开 Google 日历。注意:您只能从电脑导入,不能从手机或平板电脑导入。
  2. 单击右上角的设置齿轮按钮 > 设置。
  3. 打开日历选项卡。
  4. 单击“我的日历”和“其他日历”部分之间的导入日历。
  5. 单击选择文件并选择您导出的文件。文件应以“ics”或“csv”结尾
  6. 选择要将导入的事件添加到哪个日历。默认情况下,事件将导入到您的主日历中。
  7. 单击导入

如果您使用的是 ZIP 文件,请在计算机上找到它并打开它。您将看到每个日历的 ICS 文件。从 ZIP 文件中取出各个文件,然后单独导入每个 ICS 文件。

注意:如果您从 CSV 文件导入重复事件,它们可能不会以这种方式显示,但它们会作为一系列一次性事件出现在您的日历上。


0
投票

您可以提示用户打开此链接=>

https://calendar.google.com/calendar/u/0/r?cid=CALENDAR_LINK

其中

CALENDAR_LINK
是您日历的链接,可以是 http://server/filename.ics

确保将

http
协议替换为
webcal
协议,以便谷歌日历能够理解它。另一个想法是提供的网络通话链接中不要有任何空格

所以整个链接应该是这样的=>

https://calendar.google.com/calendar/u/0/r?cid=webcal://server/filename.ics
© www.soinside.com 2019 - 2024. All rights reserved.