我正在尝试通过我的节点应用程序访问Google上托管的日历,但由于我的日历需要授权,我无法通过给定的api查询。
我将如何禁用此功能/使我的应用程序可以访问日历?
这是我的api查询:
https://www.googleapis.com/calendar/v3/calendars/heathwallace.com_gpupieshkuc85dd832m9gjrh9g@group.calendar.google.com
这就是回应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
答案 0 :(得分:2)
如果您查看文档Calendars: get,例如:您会注意到它的状态
需要授权
现在通常,如果您将某些内容设置为公开,则可以使用公共API密钥检索它。我把我的一个测试日历设置为公用,然后尝试使用公共API密钥检索它。 (密钥和日历名称都已更改)
结果
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
结论:您必须经过身份验证才能检索数据。使用OAuth2或服务帐户。通常情况下,我建议您使用服务帐户并授予其访问相关日历的权限。由于安全问题,我不会使用JavaScript的服务帐户,因此我无法帮助您。
对您的问题回答,您必须通过身份验证才能查看日历。没有办法解决这个问题。
答案 1 :(得分:0)
您可以轻松地执行此操作(无需Oauth)。 最神奇的是在开发者控制台console.developers.google.com中创建开发人员密钥(在API& Auth - >凭证 - >公共访问密钥 - >服务器应用程序密钥中)
确保再次在控制台中启用日历API(API& Auth - > Apis)
获取https://www.googleapis.com/calendar/v3/calendars/heathwallace.com_gpupieshkuc85dd832m9gjrh9g%40group.calendar.google.com/events?key= {YOUR_API_KEY}
我刚刚成功检索了你的日历。