0

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

我在以下要点代码上获得了我的代码

基本上我使用 Meteor.loginWithGoogle 并获得一个 AccessToken,通过它我可以从谷歌获得任何日历或用户信息,但是当我尝试插入一个事件时,我收到以下消息:

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

有任何想法吗?

4

1 回答 1

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 它就像一个魅力。

于 2013-01-27T00:31:17.030 回答