我一直在尝试使用谷歌api在日历中insert an event to the user's own calendar,但我收回了这个神秘的错误:
errors: [{ domain: 'global', reason: 'notFound', message: 'Not Found'}], code: 404, message: 'not Found'}
我似乎无法访问某个文件,但我不确定是哪个文件..
这里是帖子请求中的一些代码
Google_calendar
是google_calendar npm模块。
req.user
是登录用户。
var eventBody = {
'status':'confirmed',
'summary': "Test summary of event",
'description': "COME BY AND HAVE A LOT OF FUN DESCRIPTION",
'start': {
'dateTime': moment(new Date(1424484000000)).format("YYYY-MM-DDTHH:mm:ssZ"),
'timeZone': "America/New_York"
},
'end': {
'dateTime': moment(new Date(1424491200000)).format("YYYY-MM-DDTHH:mm:ssZ"),
'timeZone': "America/New_York"
},
'attendees': [
{
'email': req.user.googleId.email,
'responseStatus': 'needsAction'
}
]
};
var google_calendar = new googleCal.GoogleCalendar(req.user.googleId.token);
google_calendar.events.insert(req.user.googleId.id, eventBody, function(err, response){
console.log("Google response:", err, response);
if (!err){
res.send(200, response);
}
else {
res.send(400, err);
}
});
我已经包含了访问令牌,用户ID(从oauth返回的google个人资料中抓取)和电子邮件地址。我还不确定为什么没有访问权限(如果有任何不同,我会使用.edu gmail帐户...)
这是我使用passport.js的OAUth代码
passport.use(new GoogleStrategy({
clientID: googleAuth.clientID,
clientSecret: googleAuth.clientSecret,
callbackURL: googleAuth.callbackURL
}, function(token, params, profile, done){
process.nextTick(function(){
User.findOne({'googleId.id': profile.id}, function(err, appUser){
if (err) return done(err);
if (appUser){
console.log("Params",params);
console.log("Profile", profile);
appUser.googleId.token = token;
appUser.lastTime = new Date();
return done(null, appUser);
}
else
{
var newUser = new User();
newUser.googleId.id = profile.id;
newUser.googleId.token = token;
newUser.googleId.name = profile.displayName;
newUser.lastTime = new Date();
newUser.googleId.email = profile.emails[0].value;
newUser.save(function(err){
if (err) throw err;
return done(null, newUser);
});
}
});
});
}));
非常感谢任何帮助!