谷歌日历可以';您不能通过https订阅icalendar订阅源吗?

谷歌日历可以';您不能通过https订阅icalendar订阅源吗?,https,google-calendar-api,icalendar,Https,Google Calendar Api,Icalendar,有人会知道Google Calendar在订阅使用安全https地址的iCalendar订阅源时是否遇到问题吗 我正在开发一个运行在https地址上的网站,它有一个用户可以订阅的iCalendar提要。该提要在Outlook和iCal中运行良好,但在Google日历中则不行。当用户试图订阅订阅源时,会收到错误消息“无法获取URL” 我怀疑feed或生成的iCalendar数据有问题,所以我运行了通过许多验证器生成的.ics文件,它们都很好。为了排除提要本身的错误,我将生成的.ics文件放在服务器

有人会知道Google Calendar在订阅使用安全https地址的iCalendar订阅源时是否遇到问题吗

我正在开发一个运行在https地址上的网站,它有一个用户可以订阅的iCalendar提要。该提要在Outlook和iCal中运行良好,但在Google日历中则不行。当用户试图订阅订阅源时,会收到错误消息“无法获取URL”

我怀疑feed或生成的iCalendar数据有问题,所以我运行了通过许多验证器生成的.ics文件,它们都很好。为了排除提要本身的错误,我将生成的.ics文件放在服务器上,以查看静态文件是否可以工作,在Google日历中也失败了。然后我把文件放在一个完全不同的服务器上,放在一个不安全的(http)url后面,这就成功了

所以我开始怀疑httpS是个问题。服务器的证书是有效的,因此不应该引起任何问题。此外,验证器可以很好地访问提要(和静态文件)

谷歌集团的这一讨论表明,其他人也有类似的怀疑:

问题是,该站点必须在https上运行,所以我不能仅仅切换到http以使提要工作


因此,如果任何人有任何信息证实或反对我的理论,或者有任何关于可能导致这些问题的其他想法,我将不胜感激。

如果服务器有robots.txt阻止谷歌,这也是谷歌日历失败的原因。那么,您是否尝试查看https服务器的robots.txt


尽管如此,这并不是google calendar+https的限制,因为google calendar为其.ics文件的“私人地址”提供https,因此它也可以从google.com接受https(尽管这只是许多其他可能的配置中的一种)。

google已经确认这确实是https的问题,即,Google Calendar无法从外部加密(https)URL订阅iCalendar源

我的雇主在谷歌有一个企业账户,我们向谷歌的企业支持部门提交了一份支持请求,包括示例提要和我们自己对问题的评估

今天,我们终于得到了一个正确的答案,确认了我们最初的分析,并通知我们已经通知了正确的techincal团队,并且已经打开了一个内部功能请求(用于支持来自https URL的提要)

我们没有得到任何修复的时间表,但我要求他们在问题解决后回复我们。一旦我收到答案,我会将该信息添加到此答案中。

我可以确认(今天)谷歌日历可以成功订阅HTTPS iCal订阅源

您可以通过添加以下URL自行测试:

另外,我还做了另一个测试,给它一个HTTPS url,如果替换HTTPS->http,这个url也不起作用。这也很好,所以在所有情况下,HTTPS都应该起作用

在我的测试中不起作用的是:

  • HTTP身份验证(
    https://myusername:mypw@com/
    )-我得到了“无法获取URL”-但这不是这个问题要问的
  • 超过256个字符的任何URL。然而,使用链接缩短器(例如goo.gl)可以解决这个问题

    • 我在这方面遇到了很多困难:

      这是令人沮丧的,因为下载的文件将在谷歌日历或iCal中打开,但也不会作为提要加载。当我按URL添加时,我会在Google日历中看到这些错误:“无法从导入日历”(sitename)或“无法获取URL”

      以下是我必须做的:

      有事件的持续时间或结束时间,而不是两者

      我还必须将其从标题中删除: 内容处置:附件;文件名=Schedule.ics


      另外,为了检查它是否有效,谷歌ical validator。

      我们在案例中发现的问题是,谷歌日历当前忽略了URL中的HTTPS指示,而是通过HTTP访问。如果您的HTTP请求重定向到HTTPS,或者只是通过HTTP提供内容,那么它就会工作。如果你有一个防火墙阻止端口80,那么事情就会悬而未决,游戏也就结束了


      TL;DR:如果你的URL在https之外使用http,那么当你以https的形式输入它时,它将与谷歌日历一起使用。(假设robots.txt不限制访问。)否则,它将失败。

      截至2020年1月,问题似乎已得到解决-谷歌日历在订阅和更新有效的RFC5545日历时似乎没有问题。该方法运行良好,可以测试文件和链接(订阅)。

      使用URL缩短器修复meThis在过去可能已经奏效,但目前Google Calendar实际上似乎通过HTTP加载内容,即使URL是HTTPS。所以,如果你还有一个“纯”https URL有效的例子,我很想看看它。@Chopmo它肯定仍然有效。我们的产品(Close.io)只通过HTTPS加载,通过iCal提要同步仍然有效。@philfreo好的,谢谢你让我知道。我现在看到我的iCal链接现在仍然在工作,即使它是通过HTTP和HTTPS提供的,所以问题一定在别处。为了给未来的读者总结一下:原来我的错误是由谷歌日历发送了一个“错误的”接受头引起的。其他日历发送的“文本/日历”如前所述,谷歌日历发送的类型被我的Rails应用程序读取为HTML(可能是文本/HTML,我不确定)。outlook.office365.com是否存在任何兼容性问题?每当我输入以结尾的Outlook地址时,我似乎都会从Google收到“无法获取URL”错误。我无法让它与HTTP一起工作。我可以下载带有URL的.ics文件,但Google无法导入它。