gpt4 book ai didi

javascript - 使用 nodejs google calendar API 插入事件返回 400 : "Missing end time"

转载 作者:搜寻专家 更新时间:2023-11-01 00:24:50 24 4
gpt4 key购买 nike

我正在尝试使用服务帐户通过 Google Calendar API 插入事件。目标是拥有一个所有用户都可以查看的日历:服务器到服务器设置。

截至目前,我可以正确调用日历 API 并列出所述日历上的事件:

var moment = require("moment"),
googleapis = require("googleapis"),
googleCal = googleapis.calendar("v3");
serviceEmail = "********@developer.gserviceaccount.com",
serviceKeyFile = "./key.pem";

var authClient = new googleapis.auth.JWT(
serviceEmail,
serviceKeyFile,
null,
["https://www.googleapis.com/auth/calendar"]
);

authClient.authorize(function (err, tokens) {
if (err) {
console.log(err);
} else {
googleCal.events.list({
auth: authClient,
calendarId: "********@gmail.com",
fields: {
items: ["end","start","summary"]
}
}, function (err, CL) {
if (err) {
console.log(err);
} else {
console.log(CL);
}
});
}
})

这会正确返回一个 JSON 对象,其中列出了日历上的所有不同对象。但是,当我尝试在 googleCal.events.list 调用正下方插入一个事件时:

googleCal.events.insert({
auth: authClient,
calendarId: "primary",
resources: {
start: {
dateTime: "2014-07-23T18:25:00.000-07:00",
timeZone: "America/New_York"
},
end: {
dateTime: "2014-07-23T19:25:00.000-07:00",
timeZone: "America/New_York"
},
summary: "winning @ life",
description: "winning @ life description"
}
}, function (err, something) {
if (err) {
console.log(err);
} else {
console.log(something);
// do something else
}
})

返回以下 400:

{ errors: 
[ { domain: 'global',
reason: 'required',
message: 'Missing end time.' } ],
code: 400,
message: 'Missing end time.'}

我该如何解决这个问题?授权显然有效——我知道,因为我已经用完了当天未授权的请求,而且我可以列出所有事件。我还指定了一个 endTime。为什么 Google 日历 API 告诉我没有?

最佳答案

我认为问题出在第二个代码段第 4 行的关键字“resources”中。根据文档,它应该是一个“资源”:

 * @param  {object} params.resource - Request body data

关于javascript - 使用 nodejs google calendar API 插入事件返回 400 : "Missing end time",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com