Coldfusion 谷歌日历按URL要求添加

Coldfusion 谷歌日历按URL要求添加,coldfusion,google-calendar-api,coldfusion-9,icalendar,Coldfusion,Google Calendar Api,Coldfusion 9,Icalendar,我正在尝试通过addbyurl方法添加谷歌日历。我从Google calendar收到一个一般性错误“未能在“我的用户名”的“我的URL”添加导入的日历”。我添加到Google的URL调用了一个Restful服务,它会发回一个.ics文件。我可以在这里验证我的URL:在这里:Google calendar希望收到什么我错过了 以下是我返回的.ics文件的内容: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Bryan G LLC//Bryan G Calendar

我正在尝试通过addbyurl方法添加谷歌日历。我从Google calendar收到一个一般性错误“未能在“我的用户名”的“我的URL”添加导入的日历”。我添加到Google的URL调用了一个Restful服务,它会发回一个.ics文件。我可以在这里验证我的URL:在这里:Google calendar希望收到什么我错过了

以下是我返回的.ics文件的内容:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Bryan G LLC//Bryan G Calendar 2014.4.30//EN
X-WR-CALNAME:Bryang Calendar
X-WR-TIMEZONE:America/New_York
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20140505T131700Z
DTSTART;TZID=America/New_York:20140725T084500
DURATION:PT2H
UID:1248@bryang.net
SUMMARY:Burns JRSR High School FH C V Home Rocky Mountain High School 
LOCATION:Home
DESCRIPTION:
END:VEVENT
END:VCALENDAR

好吧,这是最奇怪的。我遇到了或多或少相同的问题:有一个ics提要,试图用“addbyURL”将其添加到Google日历,但出现了一般性错误“添加导入的日历失败”

我在网上搜索了一下,发现了一些很久以前没有解决的相关问题。很多人抱怨这个功能的不可预测性

在建议的事情中,我试着弄乱标题,包括作为文件附件的提要,实际上是将文件写入磁盘,并给Google Calendar一个静态链接。什么都没用。在某个时刻,我终于注意到Google Calendar甚至没有尝试获取提要,因为没有点击到url,服务器上也不会显示日志

所以我开始用一个请求箱和一个本地隧道进行测试。还是一无所获。最后,我打开浏览器控制台,试着看看谷歌日历网站在按下“添加url”时发出的请求。。。我的饲料是进口的

我对此没有合乎逻辑的解释。我希望我有一个完美的答案来解决所有谷歌日历“添加Url”的问题,但在这一点上,我只能添加我自己的经验,希望它能对其他有同样困难的人有用

现在我的提要是用优秀的库构建的。但它甚至没有得到任何在线验证器的验证。我倾向于认为这些都过时了,而我的提要实际上也很好。此外,在Mac的iCal中导入相同的提要,并使用“导入文件”选项在Google日历中导入其事件,我没有任何问题

我的看法是,谷歌日历经常使用“缓存”,而最困难的部分是在系统中获取提要。一旦它到了,你就应该没事了。icalendar Feed每隔8小时左右才会更新一次,这一事实是众所周知的。也许打开chrome inspector确实有所帮助。奇怪的事情发生了


但是,我可以确认的是,大多数其他事情都无关紧要:我不使用文件附件,标题为“contenttype:text/calendar;charset=UTF-8”。我的提要并不完美,例如它有一些空UID。另外,使它真正工作的服务器命中是在我成功导入提要时发出的,因此这里没有时间因素,IP来自谷歌,因此没有客户端抓取等问题。

这里也有同样的问题。我有一个很长的URL,包含大量编码数据,但我确信URL 100%符合规范。在服务器日志中,我可以看到Google甚至没有尝试加载提要,只是因为一个一般性错误而拒绝了它。不幸的是,就像不久前的MSIE6一样,谷歌太大了,不容忽视,他们可以逃避任何事情,所以现在这是我要解决的问题

我尝试了以下方法:

  • 将.ical添加到URL
  • 将URL编码数据编码为十六进制
  • 添加随机参数以避免缓存
  • 使用新创建的子域而不是子文件夹
也许还有更多我不记得了。都没用

最后,我使用了新的子域并将所有编码数据写入一个文件,如
user7subscriptions.txt
。现在URL看起来像这样:。这很有效。没有明显的原因,一个很短的URL就可以了


这与ical的内容无关。数据从未更改,这不可能是谷歌缓存不好(我会看到他们缓存的请求,从来没有过)。

我想你可以将字段作为URL参数包含进去。你真的不需要使用ics。我无法生成字段作为URL参数,因为在某些情况下,我最多会发送50个日历条目。不过,我确实尝试在没有文件的情况下传递信息,结果相同。感谢您至少描述了您的步骤,即使它没有给出明确的结论!这是一个老问题-但对于任何来到这里的人来说,我也遇到了同样的问题(在ajax响应中看到了错误消息),当我用URL缩短器缩短我的URL时,Google Calender接受了。谢谢@PeterJaric-你是个救命恩人!我遇到了完全相同的问题,但随后尝试将我使用的URL从
/download/calendar/feed/12345
缩短为
/c/123456
,并且它开始工作……即使是在一个很长的测试域中!