node.js - 使用 Nodejs 的服务帐户在谷歌日历中插入事件
问题描述
我无法使用带有服务帐户的 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);
});
})
};
当我使用读取函数时,相同的代码可以正常工作。任何想法 ?
解决方案
这是一个已知的错误
使用服务帐户将与会者添加到活动时出现问题。
当前的解决方法是使用G Suite 域范围委派模拟用户。如果这样做,您应该能够与与会者一起创建活动。
另一种选择是从活动创建请求中删除与会者。
推荐阅读
- svm - SVM 分类 - 错误的输入形状错误
- vb.net - 无法删除 .xlsx 文件 - 下一步?
- php - php - 层次表中的递归函数
- android - 在缓存中保存类似按钮操作
- node.js - 我的请求 URL 指向我的 ReactJS 服务器而不是 NodeJS
- reactjs - 当用户不刷新页面而只是关闭/退出我的模式时,如何清除登录错误消息?
- instagram-api - 如何使用 Instagram Basic Display API 通过应用审核来获取我的应用?
- .net - 无法自定义日志路径
- mysql - MySql - 从同一列中提取两个不同的总和
- vapor - 需要帮助在 Vapor 3 中使用 Fluent 进行许多 <-> 匹配