我正在尝试在Meteor中使用Google日历REST API我可以毫无问题地使用任何GET方法,但是当我尝试在日历中创建事件时,我会收到未经授权的访问错误。
我在以下要点上发现了我的代码code
Basicaly我使用Meteor.loginWithGoogle并获得一个AccessToken,有了它我可以从谷歌获得任何日历或userInfo,但当我尝试插入一个事件时,我得到以下消息:
POST https://www.googleapis.com/calendar/v3/calendars/primary/events 401(未经授权)
任何想法?
答案 0 :(得分:6)
经过一段时间的努力尝试后......
将以下文件添加到我的客户端文件夹
Accounts.ui.config({requestPermissions: {google:
['https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/tasks']}}, requestOfflineToken: {google: true})
gCal =
insertEvent: (cliente, poblacion, texto, fecha)->
#to-do calendar devuelve un Event Object que incluye un ID
# si incluimos este id como campo en la alerta podremos despues
# eliminar el evento en el calendario directamente desde la app
url = "https://www.googleapis.com/calendar/v3/calendars/primary/events"
event= {
summary: cliente
location: poblacion
description: texto
start:
"date": fecha
end:
"date": fecha
}
evento = JSON.stringify event
console.log evento
Auth = 'Bearer ' + Meteor.user().services.google.accessToken
Meteor.http.post url, {
params: {key: 'INSERT-YOUR-API-KEY-HERE'},
data: event,
headers: {'Authorization': Auth }
},
(err, result)->
console.log result
return result.id
如果您通过{{loginButtons}}登录然后调用insertEvent,它就像魅力一样。