Как посмотреть канал в API Календаря Google, используя node.js? - PullRequest
0 голосов
/ 30 октября 2018
module.exports.hook = (req, res) => {
  resourceId = req.headers['x-goog-resource-id'];
  console.log('received signal from Google');
  console.log('listen on channel ID: ', req.headers['x-goog-channel-id']);
  console.log('and resource ID is:', req.headers['x-goog-resource-id']);
  listEvents(auth);
};

module.exports.createChannel = (id, callback) => {
  const calendar = google.calendar({ version: 'v3', auth });
  calendar.events.watch({ // post method
    auth,
    calendarId: 'primary',
    resource: {
      id,
      type: 'web_hook',
      address: `https://super.eu.ngrok.io/notifications?id=${id}`,
    },
  }, (error, result) => {
    if (error) throw error;
    callback(result);
  });
};

Это то, что я пытался. Я не мог найти какую-либо конкретную информацию. Пожалуйста, помогите. Заранее спасибо. Я совершенно новичок в Google API.

1 Ответ

0 голосов
/ 30 июля 2019

Вы не предоставляете никаких сведений об ошибке, с которой столкнулись.
В любом случае, я думаю, вы должны попробовать адрес без каких-либо параметров URL:
https://super.eu.ngrok.io/notifications вместо https://super.eu.ngrok.io/notifications?id=${id}
Бесполезно устанавливать ваш уникальный идентификатор в URL. Вы получите его в ответе часов.

Проверьте также, что ваш объект аутентификации действителен. Это работает для меня.

const response = await google.calendar({ version: 'v3', auth }).events.watch({
      calendarId: 'primary',
      resource: {
        id,
        address: 'https://super.eu.ngrok.io/notifications',
        type: 'web_hook',
        params: {
          ttl: '30000',
        },
      },
    }));

Больше информации здесь:

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