2
我試圖通過Google Calendar API插入帶有服務帳戶的事件。目標是讓所有用戶查看一個日曆:服務器到服務器的設置。使用nodejs Google日曆API插入事件返回400:「缺少結束時間」
截至目前,我可以正確地調用日曆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
。爲什麼谷歌日曆API告訴我我沒有?
事實證明,我拼錯'resource'。在上面的代碼中,我使用了'resources',這是錯誤的。 – royhowie