google calendar api watch java script

时间:2016-12-06 17:11:16

标签: javascript google-api google-calendar-api

我目前正在使用google calendar api并尝试在javascript中编写一个使用calendar.events.watch函数的函数,以便在用户日历中有更新时进行更新(取消,创建或修改。

我正在尝试查看我获得的信息,以便了解此服务是否与我的需求相关 - 了解是否发生了更改或甚至发生了更改。

我打开一个频道并提供数据,但是当我对日历进行更改时,我没有得到任何回复,如下所示: https://developers.google.com/google-apps/calendar/v3/reference/events/watch

这是我写的函数:

function watchEvents(token) {
  var calendar = google.calendar('v3');
  var oauth2ClientPromise = createAuthObject(token);
  console.log('step 1')
  return oauth2ClientPromise
  .then(function (authObject){
    console.log('step 3')
    return Q.nfcall(calendar.events.watch, {
      auth: authObject,
      calendarId: '*I put here my email*',
      singleEvents: true,
      orderBy: 'startTime',
      resource:{
        id: channel_id,
        token: 'email=' + '* placed my email*',
        type: 'web_hook',
        address: '*placed my address*',
        params: {
          ttl: '36000'
        }
      }

    });
  })
  .catch(function(err) {
console.log('step 2');
  });
}

我运行了代码:

    calendar.watchEvents(token_parsed).then((result)=>console.log("result"))
.catch(err=>console.log(err));

我没有错误,它输入了我的第1步'和'步骤3'标志,但当我在日历中更改事件时,我没有收到任何通知。

这是我在控制台中得到的:

第1步 侦听端口8080的示例应用程序! 第3步 结果

有谁知道我应该从API获得什么样的信息?怎么样?那是不是我的工作?

1 个答案:

答案 0 :(得分:2)

但是当我在日历中更改了事件时,我没有得到任何事件 通知

通过向指南中所述的资源的watch方法发送POST请求来启用

Making watch requests

另请注意:

  

“每个通知渠道都与特定用户相关联   和特定资源(或资源集)。观看请求会   除非当前用户拥有或拥有许可,否则不会成功   访问此资源。“

实施例

开始关注给定日历上的事件集合的更改:

    POST https://www.googleapis.com/calendar/v3/calendars/my_calendar@gmail.com/events/watch
    Authorization: Bearer auth_token_for_current_user
    Content-Type: application/json

{
  "id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.
  "type": "web_hook",
  "address": "https://sampledomain.com/notifications", // Your receiving URL.
  ...
  "token": "target=myApp-myCalendarChannelDest", // (Optional) Your channel token.
  "expiration": 1426325213000 // (Optional) Your requested channel expiration time.
  }
}

您可以从官方指南中了解更多内容,包括Receiving Notifications tuts。