Получение нескольких уведомлений о событиях календаря Outlook - PullRequest
0 голосов
/ 25 января 2020

Я использую node.js и пакет Microsoft Graph npm (@microsoft/microsoft-graph-client) для вызова webhook в Office 365 для событий календаря. Я получаю несколько уведомлений о веб-крюках для каждого обновления, удаления и создания событий календаря Office 365.

Мой исходный код:

router.post("/webhook", (req, res) => { 
  if (req.query.validationToken) {
    res.status(200);
    res.send(req.query.validationToken)
  } else {
    res.status(202);
    console.log(req.body.value[0].changeType);
    console.log(req.body.value[0].resource);
  }

});

//CREAE A WEBHOOK
router.get("/createWebhook", async (req, res) => {
  const accessToken = await authHelper.getAccessToken(req.cookies, res);
  const client = graph.Client.init({
    authProvider: (done) => {
      done(null, accessToken);
    }
  });

  const subscription = {
    changeType: "deleted,updated,created",
    notificationUrl: "https://abccb3e5.ngrok.io/calendar/webhook",
    resource: "me/events",
    expirationDateTime: "2020-01-26T18:23:45.9356913Z",
    clientState: "My calendar sync"
  };
  try {
       client.api('/subscriptions')
      .post(subscription, (errr,result) => {
        if (result)
          console.log(result);  
        //process subscription
      });
  } catch (err) {
    console.log(err)
  }
  res.redirect('/calendar');

});

Когда я создаю событие, Graph несколько раз уведомляет об этом через веб-крючок конечная точка, а затем продолжается для удаления и обновления также.

1 Ответ

0 голосов
/ 06 февраля 2020

Это сделано специально, служба Microsoft Graph Webhooks может отправлять вам дубликаты уведомлений об одних и тех же событиях. Ваш код должен обрабатывать этот сценарий, некоторые уведомления содержат уникальный идентификатор, чтобы помочь вам отслеживать доставки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...