未经授权访问Google Calendar API发布请求

时间:2013-01-09 02:05:12

标签: meteor

我正在尝试在Meteor中使用Google日历REST API我可以毫无问题地使用任何GET方法,但是当我尝试在日历中创建事件时,我会收到未经授权的访问错误。

我在以下要点上发现了我的代码code

Basicaly我使用Meteor.loginWithGoogle并获得一个AccessToken,有了它我可以从谷歌获得任何日历或userInfo,但当我尝试插入一个事件时,我得到以下消息:

POST https://www.googleapis.com/calendar/v3/calendars/primary/events 401(未经授权)

任何想法?

1 个答案:

答案 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,它就像魅力一样。