我无法使用带有服务帐户的Node.js插入事件。服务帐户电子邮件已添加到该帐户中,并具有对事件进行更改的权限。我的nodejs代码正在google云功能上运行这是我的代码:
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);
});
})
};
当我使用read函数时,相同的代码可以正常工作。任何的想法 ?
这是一个已知的错误
There is an issue when adding attendees to an event with a Service Account.
The current workaround is to impersonate a user using G Suite Domain-wide Delegation. If you do so, you should be able to create the events with attendees.
Another option is to remove the attendees from the Event creation request.
you'r the best, I have removed the attendees, and it works! but still I t without the attenddees, it's not sexy. Google should work on that.