实施node-google-calendar包

时间:2018-02-14 12:31:29

标签: node.js api express google-calendar-api

我正在尝试实施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;:"禁止"}}}}

任何人都可以发现错误的位置?或者我错过了什么步骤?三江源

1 个答案:

答案 0 :(得分:0)

在您所有凭据所在的JSON文件中,应该有一个服务帐户的电子邮件地址。

您需要使用与服务帐户关联的电子邮件地址共享您尝试更新的日历。由于您要插入日历,因此您还需要为该日历提供该服务帐户电子邮件地址的写入权限。