【发布时间】:2021-01-03 21:17:12
【问题描述】:
我在我的 Angular 9 Web 应用程序中使用 Google 日历 API,并尝试在我的 G Suite 域中的 Google 日历上创建事件
在 G Suite 管理控制台中,我已为 https://www.googleapis.com/auth/calendar 和 https://www.googleapis.com/auth/calendar.events 范围的服务帐号授予权限
我在自己的帐户下创建了日历,并添加了具有“更改活动”权限的服务帐户
注意:我尝试了普通的 gmail 帐户。这是工作。但是当我尝试使用 google 企业帐户时,我遇到了上述问题(例如设置 Google 日历事件创建时的作家访问错误)。
我正在使用此代码保存日历事件:
请在下面找到屏幕截图。
const jwtClient = new google.auth.JWT(
GOOGLE_CLIENT_EMAIL,
null,
GOOGLE_PRIVATE_KEY,
['https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.events']
);
const calendar = google.calendar({
version: 'v3',
project: GOOGLE_PROJECT_NUMBER,
auth: jwtClient
});
var appointment_data = {
summary: 'xyz',
location: 'Location info',
description: 'Some description',
start: {
'dateTime': dataObj.appt_startdate_time,
'timeZone': dataObj.appt_timeZone,
},
end: {
'dateTime': dataObj.appt_enddate_time,
'timeZone': dataObj.appt_timeZone,
},
attendees: [
{
"displayName": 'Xyz',
"email": 'xyz@gmail.com'
}
]
}
calendar.events.insert({
calendarId: GOOGLE_CALENDAR_ID,
resource: appointment_data,
}, function (err, event) {
if (err) {
console.log('There was an error contacting the Calendar service: ' + err);
return;
}
})
【问题讨论】:
-
请添加您用于创建事件和验证服务帐户的代码。
-
const jwtClient = new google.auth.JWT(GOOGLE_CLIENT_EMAIL, null, GOOGLE_PRIVATE_KEY, ['googleapis.com/auth/calendar', 'googleapis.com/auth/calendar.events']); const calendar = google.calendar({ version: 'v3', project: GOOGLE_PROJECT_NUMBER, auth: jwtClient });
-
var 约会数据 = { 摘要:'xyz',位置:'位置信息',描述:'一些描述',开始:{'dateTime':dataObj.appt_startdate_time,'timeZone':dataObj.appt_timeZone , }, end: { 'dateTime': dataObj.appt_enddate_time, 'timeZone': dataObj.appt_timeZone, }, 参加者: [ { "displayName": 'Xyz', "email": 'xyz@gmail.com' } ] }
-
calendar.events.insert({ calendarId: GOOGLE_CALENDAR_ID, resource:ointment_data, }, function (err, event) { if (err) { console.log('联系日历服务时出错: ' + err); return; } })
-
请在问题中添加。 cmets 真的很难阅读和理解。谢谢
标签: angular google-api calendar google-calendar-api