Node.js 使用Google API访问公共日历而无需用户登录
我想使用谷歌的RESTAPI访问公共日历 Google的日历API建议我需要OAuth令牌才能访问日历: 但是,我正在访问一个公共日历,并且正在从服务器上执行此操作,因此不能/不应该要求用户进行身份验证 我正在使用node.js api:Node.js 使用Google API访问公共日历而无需用户登录,node.js,google-api,google-calendar-api,google-api-nodejs-client,Node.js,Google Api,Google Calendar Api,Google Api Nodejs Client,我想使用谷歌的RESTAPI访问公共日历 Google的日历API建议我需要OAuth令牌才能访问日历: 但是,我正在访问一个公共日历,并且正在从服务器上执行此操作,因此不能/不应该要求用户进行身份验证 我正在使用node.js api: googleapis .discover('calendar', 'v3').execute(function(err, client) { client.calendar.calendars.get({ calendarId: '***@gro
googleapis
.discover('calendar', 'v3').execute(function(err, client) {
client.calendar.calendars.get({ calendarId: '***@group.calendar.google.com' })
.execute(function (err, response) {
console.log('response from google', response);
});
});
这返回“您的客户发出了一个格式错误或非法的请求。这就是我们所知道的。”
在.calendars.get()之后调用.withApiKey('***')
将返回相同的错误
有什么建议吗?正如文档中多次说明的那样
对Google日历API的所有请求必须由经过身份验证的用户授权
因此,如果你想使用谷歌日历API,你需要一个经过身份验证的用户。这可以通过和等模块轻松实现
但是,如果您可以暂时不使用API
- 日历是公开的
- 您想要只读访问权限
您可以通过ical、xml或html轻松获取公共地址并使用日历。查看英国节假日公共日历:
您可以从以下位置公开访问数据:
- xml
- 艾尔
- html
在这一点上,使用node获取这样的资源并获取所需的数据是很简单的。哦,伙计们,加油!只要日历设置为公共,您就可以在不使用OAuth的情况下获取数据,而无需用户登录!我自己也测试过
$.ajax({
url:"https://www.googleapis.com/calendar/v3/calendars/" + cal_id + "/events?key=" + api_key,
success: function(data) {
console.log(data);
}
});
试试看
文档就在这里不幸的是,“基本”提要没有包括所有日历数据,“完整”提要刚刚停用。我已经反复尝试了,无论出于什么原因,我都无法使其正常工作。我删除了授权标头。在那之后它就开始工作了