我正在尝试实施node-google-calendar Node.js包。 我已创建服务帐户并且已获得.json密钥。 这是我的代码setting.js:
const key = require('./credentials.json').private_key;
const SERVICE_ACCT_ID = '11680319875XXXXXXXXXX';
const CALENDAR_URL = 'https://calendar.google.com/calendar?cid=XXXXXXXXXXXXXXXXXXXXX';
const CALENDAR_ID = {
'primary': 'xxxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com',
};
const TIMEZONE = 'UTC+07:00';
module.exports.calendarUrl = CALENDAR_URL;
module.exports.serviceAcctId = SERVICE_ACCT_ID;
module.exports.calendarId = CALENDAR_ID;
module.exports.key = key;
module.exports.timezone = TIMEZONE
代码quickstart.js:
const CONFIG = require('./setting.js');
const CalendarAPI = require('node-google-calendar');
let cal = new CalendarAPI(CONFIG);
const calendarId = 'xxxxxxxxxxxxxxxxxxx@group.calendar.google.com';
let params = {
'start': { 'dateTime': '2017-05-20T07:00:00+08:00' },
'end': { 'dateTime': '2017-05-20T08:00:00+08:00' },
'location': 'Coffeeshop',
'summary': 'Breakfast',
'status': 'confirmed',
'description': '',
'colorId': 1
};
cal.Events.insert(calendarId, params)
.then(resp => {
console.log('inserted event:');
console.log(resp);
})
.catch(err => {
console.log('Error: insertEvent-' + err.message);
});
它返回错误:
错误: insertEvent - {"来源":" Events.insert""错误" {"的StatusCode":" 403(禁止) "" errorBody" {"错误" {"错误":[{"结构域":"全球& #34;" REAS 上":"禁""消息":"禁止"}],"代码":403,"消息& #34;:"禁止"}}}}
任何人都可以发现错误的位置?或者我错过了什么步骤?三江源
答案 0 :(得分:0)
在您所有凭据所在的JSON文件中,应该有一个服务帐户的电子邮件地址。
您需要使用与服务帐户关联的电子邮件地址共享您尝试更新的日历。由于您要插入日历,因此您还需要为该日历提供该服务帐户电子邮件地址的写入权限。