【发布时间】:2020-05-25 05:23:32
【问题描述】:
我无法通过服务帐户使用 Nodejs 插入事件。 服务帐户电子邮件已添加到具有更改事件权限的帐户中 我的 nodejs 代码在谷歌云功能上运行 这是我的代码:
const {
google
} = require('googleapis');
var event = {
'summary': 'Google I/O 2015',
'location': '800 Howard St., San Francisco, CA 94103',
'description': 'A chance to hear more about Google\'s developer products.',
'start': {
'dateTime': '2020-02-10T13:00:00-05:00'
},
'end': {
'dateTime': '2020-02-10T15:00:00-05:00'
},
'attendees': [{
'email': 'Emailh@domain.com'
}],
'reminders': {
'useDefault': false,
'overrides': [{
'method': 'email',
'minutes': 24 * 60
},
{
'method': 'popup',
'minutes': 10
},
],
},
};
exports.helloWorld = (req, res) => {
google.auth.getClient({
scopes: 'https://www.googleapis.com/auth/calendar',
}).then(auth => {
const calendar = google.calendar({
version: 'v3',
auth
});
calendar.events.insert({
auth: auth,
calendarId: 'MyCalendarID',
resources: event,
}, function(err, event) {
if (err) {
console.log('There was an error contacting the Calendar service: ' + err);
return;
}
console.log('Event created: %s', event.htmlLink);
});
})
};
当我使用读取函数时,相同的代码可以正常工作。 有什么想法吗?
【问题讨论】:
-
https://www.googleapis.com/auth/calendar.eventsread/write access to Events(developers.google.com/calendar/auth) -
我试过了,它并没有改变任何东西,根据这个文件,developers.google.com/calendar/v3/reference/events/insert 我们可以把googleapis.com/auth/calendar.events 或googleapis.com/auth/calendar 放在
-
联系日历服务时出错:错误:缺少结束时间。
-
我在我的函数中添加了这个: res.set('Access-Control-Allow-Origin', "*"); res.set('Access-Control-Allow-Methods', 'GET, POST'); res.set('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type:application/json, Accept');
-
也许试试
npm uninstall googleapis然后npm install googleapis@latest --save。
标签: node.js google-cloud-functions google-calendar-api service-accounts