Google Calendar API请求异常:event.htmlLink返回undefined
问题分析与修复方案
嘿,我一眼就揪出了问题的根源——你定义event对象时,start和end字段的格式完全不符合Google Calendar API的要求!
错误核心原因
Google Calendar API明确要求start和end是单个对象,但你写成了包含两个独立对象的数组。这种格式错误会导致API请求被服务器拒绝或返回非预期的响应,最终回调里拿到的event不是有效的事件对象,自然就找不到htmlLink属性,所以才会输出undefined。
修正后的完整代码
把start和end的数组结构改成单个对象即可解决问题:
function insertEvents(){ var event = { "summary": userEmail , "location": '4 rue mogador Trouville sur mere', "description": 'Test de lgtrouville.com', "end": { "dateTime": "2018-05-28T10:00:00+02:00", "timeZone": "Europe/Paris" }, "start": { "dateTime": "2018-05-25T10:00:00+02:00", "timeZone": "Europe/Paris" }, "attendees": [ {"email": "lpage@example.com"}, {"email": "sbrin@example.com"} ], "reminders": { "useDefault": false, "overrides": [ {"method": "email", "minutes": 24 * 60}, {"method": "popup", "minutes": 10} ] } }; var request = gapi.client.calendar.events.insert({ 'calendarId': userEmail , 'resource': event }); request.execute(function(event) { appendPre('Event created: ' + event.htmlLink); }); }
额外排查建议
为了以后更快定位这类问题,建议给回调加上错误处理逻辑,打印完整的响应信息:
request.execute(function(event, response) { if (response.error) { console.error('API请求出错:', response.error); return; } appendPre('Event created: ' + event.htmlLink); });
这样如果API返回错误,你能直接在控制台看到具体的错误提示,不用再盲目猜测啦!
内容的提问来源于stack exchange,提问作者jeremy
相关产品推荐
相关产品推荐

