Google美国假期日历Feed被禁止

时间:2014-11-17 20:00:54

标签: fullcalendar google-calendar-api feed

我正在美国假期使用这个谷歌日历提要...

https://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/full?alt=json-in-script&callback=jQuery18204341156887821853_1416248123466&start-min=2014-10-26T00%3A00%3A00Z&start-max=2014-12-07T00%3A00%3A00Z&singleevents=true&max-results=9999&_=1416248372436

它现在返回Forbidden Error 403.我假设这与v2今天关闭有关:https://developers.google.com/google-apps/calendar/v2/developers_guide_protocol

我无法找到如何使用v3获取此Feed。有谁知道吗?

更新:我似乎没有使用上面的网址,我实际上正在使用此网址:https://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic

它似乎有效。该错误似乎与" fullcalendar"我正在使用的jQuery插件。它正在使用此URL工作并将其转换为我发布的不起作用的初始URL。我将进一步调查,看看fullcalendar是否有补丁或新版本。

3 个答案:

答案 0 :(得分:2)

要使用v3,只需在https://console.developers.google.com注册开发人员密钥,然后执行以下操作:

GET https://www.googleapis.com/calendar/v3/calendars/usa__en%40holiday.calendar.google.com/events?key={YOUR_API_KEY}

答案 1 :(得分:2)

我今天遇到了同样的问题。我的客户端现在已经使用了fullcalendar一段时间了。问题似乎是谷歌关闭了API(v1,v2)

http://googleappsupdates.blogspot.ca/2014/06/calendar-gdata-api-google-calendar.html

我一直在努力使它与v3兼容。我上传了您可能需要的文件:

http://dev.radicalwerks.com/RadicalCalendar/rwCal/fullcalendar.js

http://dev.radicalwerks.com/RadicalCalendar/rwCal/gcal.js

在这里你可以看到工作的例子:

http://dev.radicalwerks.com/RadicalCalendar/my_fgcalendar.html

您需要执行几个步骤才能启用API并使其正常运行。

首先创建一个客户端ID并从google的开发者控制台获取密钥:

https://console.developers.google.com/project

为了做到这一点,创建项目,转到API和API下的凭据;验证等。获取客户端ID后,请将AUTHORIZED REDIRECT URIS textarea保留为空白。在JAVASCRIPT ORIGINS下添加您需要运行API的域(您可以使用多个域,每行添加一个)。你可能知道所有这些,但可以帮助那些不清楚它是如何工作的人。

获得客户端ID和密钥后,必须将它们添加到fullcalendar.js文件中的变量中。他们是最重要的:

var clientId

var apiKey

保留范围值。最后,您需要获取日历ID(位于日历设置/日历详细信息/日历地址下的XML徽章旁边。您必须将其添加到我们通常用于添加网址的对象中。您不会我需要添加一个名为" calendarId"的新属性。如果你查看http://dev.radicalwerks.com/RadicalCalendar/my_fgcalendar.html下的实例,你可以看到我是如何添加我的。

您需要通过添加头部来加载API:

<script src="https://apis.google.com/js/client.js"></script>    

我在这两个文件中添加的所有内容都在评论之间:/* New update by Yared */

我必须改进代码,它只是一个快速解决方案,使其工作。现在是时候睡觉:)我很快就会更新代码。基本上,所以你知道,如果检测到属性CalendarID,我打断了AJAX调用,然后我使用API​​ v3发出请求,并根据新格式调整事件对象。

我想我没有遗漏任何东西。我希望所有这些都有所帮助。

答案 2 :(得分:0)