我正在尝试访问包含国家法定假日的公共日历(来自Google日历):
calendarId: 'pt_br.brazilian#holiday@group.v.calendar.google.com'
Run Code Online (Sandbox Code Playgroud)
由于日历是公开的,我以为我只能使用API密钥访问它:
function OnLoadCallback() {
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);
});
});
}
Run Code Online (Sandbox Code Playgroud)
但是,我一直收到以下响应,这是一个401(未授权)错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": …Run Code Online (Sandbox Code Playgroud) 我怎样才能得到一个JSON与事件的公共谷歌日历?我有它,ID但没有接受它.我不想改变它的事件,也不想登录.
我想JSON从它获得一个与我PHP/ MySql数据库同步.
试着 https://www.googleapis.com/calendar/v3/calendars/{calendarId}
但是登录错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个允许用户从列表中选择国家/地区的应用.当他们选择一个国家时,会出现该国家的国家法定假日列表.
我见过CalendarProvider和Google Calendar V3,但它们似乎只提供当前用户的日历.
我怎样才能获得特定国家的国定假日?任何建议都会对我有所帮助.
更新:
我发现这篇文章可以获得JSON格式的假期列表.在此示例中,国家/地区代码由日历ID定义,例如pt_br.brazilian#holiday@group.v.calendar.google.com或en.usa#holiday@group.v.calendar.google.com.
但我找不到任何关于此的文件.是否可以这种方式使用API?如果是,我在哪里可以获得这些日历ID?