未经授权通过JavaScript访问Google Calendar API
作者:互联网
我正在尝试访问包含国家法定假日的公共日历(来自Google日历):
calendarId: 'pt_br.brazilian#holiday@group.v.calendar.google.com'
由于日历是公开的,我以为我只能使用API密钥访问它:
function onl oadCallback() {
var config = {
client_id: '32j4lk32j5kj342l5h.googleuser.com', //fake client id
scope: 'https://www.googleapis.com/auth/calendar.readonly'
};
gapi.client.setApiKey('fId345AM20HXXXXXXXXXXXXXXXXgT3f9kyp2REfkaw2'); //fake api key
gapi.client.load('calendar', 'v3', function() {
var today = new Date(),
request;
request = gapi.client.calendar.calendarList.get({
calendarId: 'pt_br.brazilian#holiday@group.v.calendar.google.com',
timeMin: (new Date(today.getFullYear(), today.getMonth(), today.getDay(), 0, 0, 0, 0)).toISOString(),
timeMax: (new Date(today.getFullYear(), today.getMonth(), today.getDay(), 23, 59, 59, 999)).toISOString(),
fields: 'items(creator(displayName,email),end,endTimeUnspecified,start,summary)'
});
request.execute(function(response) {
window.alert('length of items: ' + response.items.length);
});
});
}
但是,我一直收到以下响应,这是一个401(未授权)错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
有人可以澄清我正在尝试做的事情是否可以实现?
最后,如果有可能 – 我需要更改参考我当前的代码?
解决方法:
我能够使用jQuery做同样的事情.
var mykey = 'your_api_key'; // typically like Gtg-rtZdsreUr_fLfhgPfgff
var calendarid = 'you_calendar_id'; // will look somewhat like 3ruy234vodf6hf4sdf5sd84f@group.calendar.google.com
$.ajax({
type: 'GET',
url: encodeURI('https://www.googleapis.com/calendar/v3/calendars/' + calendarid+ '/events?key=' + mykey),
dataType: 'json',
success: function (response) {
//do whatever you want with each
},
error: function (response) {
//tell that an error has occurred
}
});
但是,您需要确保已完成以下操作: –
1)在https://code.google.com/apis/console注册一个项目
2)生成简单的API访问密钥
3)确保在服务下激活Calendar API.
阅读更多https://developers.google.com/google-apps/calendar/firstapp
标签:javascript,oauth-2-0,google-api,google-calendar-api 来源: https://codeday.me/bug/20191004/1851405.html