访问公开分享的Google日历

时间:2015-03-13 02:32:26

标签: jquery google-api

过去几天我一直试图弄清楚如何在一个简单的HTML网页中仅使用jQuery从我的一个Google用户日历中提取日历数据,但还没有达到我需要的解决方案。

公开共享日历(在日历设置中选中“将此日历设为公开”)。

以下是我尝试的解决方案。

解决方案1 ​​

我查看了来自Feed的数据,可以通过以下方式访问:http://www.google.com/calendar/feeds/{calendar-id-here}/public/basic?alt=json。该解决方案虽然有效,但却无法提供有关各个事件的足够信息。例如,事件没有开始日期/时间和结束日期/时间数据。嗯,他们确实做了,但是它被埋在绳子里,而且我宁愿不在日期和时间里刮掉弦。

解决方案2

我在Google Console中创建了一个项目以及一个简单的API密钥,然后在Internet上尝试了一些示例来获取此代码:

gapi.client.load('calendar', 'v3')
    .then(function () {
        return gapi.client.setApiKey(apikey);
    })
    .then(function () {
        return gapi.client.calendar.calendars.get({calendarId: '{calendarId-here}'});
    })
    .then(function () {
        console.log('Worked!');
    }, function () {
        console.log('It failed!');
    });
此代码一直返回401 Unauthorized响应。

解决方案3

最终解决方案是尝试使用OAuth访问它。设置正确的引用等之后,此解决方案可以正常运行,但需要访问者登录Google才能运行API。

我的问题,然后:甚至可以匿名访问公开分享的Google用户的日历,如果是,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

我之前已经完成了类似的工作,但是使用了YouTube和Ajax。它有点hacky但它​​完成了工作。首先,您需要原始RSS apparently you can get it。然后使用带有dataType:xml的Ajax从feed中获取XML。从那里开始,它将取决于数据结构如何,但硬件将在那时结束。 Here's my post about handling YouTube.

相关问题