0
我正在编写一个采用Google Calendar API的服务器。我做了一个成功的请求,但这POST
请求is supposed to create a new Calendar返回的HTTP响应身体出现以下错误:由谷歌日历API请求没有通过Node.js(Express)+请求库
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required"
}
],
"code": 400,
"message": "Required"
}
}
我如何使用Node.js,Express和节点的HTTP库的包装称为Request( Mikeal)向Google的API提出请求。我只问这个问题,因为错误信息是相当隐秘的。如果有人能帮助解决这个问题,那会很棒!
一些代码样本包含如下,以帮助了解更多:
setupTasksCalendar法(使创建一个新的日历请求):
var setupTasksCalendar = function(req, callback) {
Oauth.makeApiCall({
method: 'POST',
url: 'https://www.googleapis.com/calendar/v3/calendars',
body: JSON.stringify({
summary: "Google Calendar Tasks"
})
}, req, function(e, body) {
if (e) console.log(e);
console.log(body);
callback();
});
};
makeApiCall方法(包装方法,使所需的检查并将身份验证令牌添加到URL):
this.makeApiCall = function(parameters, req, callback) {
if (Date.now() >= req.session.user.token_expiration_time) {
self.Auth.updateAccessToken(req, function() {
parameters.url = self.addAccessToken(parameters.url, req);
request(parameters, function(e, r, body) {
if (e) console.log(e);
callback(e, body);
});
});
} else {
parameters.url = self.addAccessToken(parameters.url, req);
request(parameters, function(e, r, body) {
if (e) console.log(e);
callback(e, body);
});
}
};
参观https://www.googleapis.com/calendar/v3/日历手动给了我相同的回应。你是否应该包含你的API密钥或什么? – 2013-03-26 22:34:53
我在请求中包含了我的access_token,如果这是你要求的。我知道'makeApiCall'函数可以与其他请求一起工作,因为我成功地发出了其他请求,并且该函数会自动将access_token添加到URL中;我不认为这是。 – 2013-03-26 22:37:17
你确定你有正确的网址吗? – 2013-03-26 22:43:26