Node.js集成Google Calendar添加Meet链接遇400错误求助
解决Google Calendar添加conferenceData时的400错误
针对你遇到的问题,从代码里找几个可能的修复点:
- requestId需为字符串类型
Google Calendar API要求requestId是字符串格式,你当前用new Date().getTime()返回的是数字,虽然JS可能自动转换,但明确转成字符串能避免潜在的类型匹配问题:
requestId: new Date().getTime().toString()
- 修正reminders里的属性引号问题
你代码里reminders的overrides数组中,'minutes'带了单引号,虽然JS允许,但统一使用无引号的属性名更规范,也能避免解析异常:
{ method: 'email', minutes: 24 * 60 }, { method: 'popup', minutes: 10 },
- 确认conferenceSolutionKey的type值
正确的Meet会议类型是hangoutsMeet,googleMeet不是API认可的有效值,保持使用hangoutsMeet即可。
修改后的完整事件对象代码:
const event = { summary: 'Coding class', location: 'Virtual / Google Meet', description: 'Learn how to code with Javascript', start: { dateTime: new Date().toISOString(), timeZone: 'Asia/Calcutta', }, end: { dateTime: new Date(new Date().setHours(new Date().getHours() + 1)).toISOString(), timeZone: 'Asia/Calcutta', }, reminders: { useDefault: false, overrides: [ { method: 'email', minutes: 24 * 60 }, { method: 'popup', minutes: 10 }, ], }, conferenceData: { createRequest: { conferenceSolutionKey: { type: 'hangoutsMeet', }, requestId: new Date().getTime().toString() } }, }; const response = await calendar.events.insert({ calendarId: 'primary', resource: event, conferenceDataVersion: 1 });
如果还是报错,建议捕获错误并打印详细信息,比如:
try { const response = await calendar.events.insert({ calendarId: 'primary', resource: event, conferenceDataVersion: 1 }); console.log('Event created:', response.data); } catch (error) { console.error('Error creating event:', error.message); if (error.details) { console.error('Error details:', error.details); } }
根据返回的具体错误信息,能更精准定位问题(比如权限不足、时间冲突等)。
内容的提问来源于stack exchange,提问作者Abhishek
相关产品推荐
相关产品推荐

