Я выполняю некоторые функции Google Calendar api. У меня есть пользовательский календарь, который имеет возможность синхронизации с календарем Google. Это означает, что вы можете создавать и редактировать календари и события из моей панели управления в учетную запись календаря Google. Основная проблема, с которой я столкнулся, заключается в том, что я обновляю событие непосредственно из своего календаря Google. Я внедрил push-уведомления и получил ответ вроде этого:Обновление базы данных при изменении Календаря Google
{
"Google_channel_ID": "19835150 - 0057 - 11e6 - bc9c - 1735798 ca540",
"Google_channel_token": "calendar_id = 4e7 d5c20ht9lpfdtuukcsvgeq4 @group.calendar.google.com & user_id = 43e d7rxeqqce3fk09ahszc",
"Google_channel_expiration": "Tue,12 Apr 2016 12: 34: 36 GMT",
"Google_resource_id": "oLMEEhHAw5Xo3r2187CWykjAtm0",
"Google_resource_URI": "https: //www.googleapis.com/calendar/v3/calendars/[email protected]/events?alt=json",
"Google_resource_state": "sync",
"Google_message_number": "1"
}
Но этот ответ очень общий. Например, если у меня есть 1000 событий в этом календаре и обновите все 1000 событий. Я получаю всегда одно и то же уведомление 1000. Я хотел бы знать, если возможно получить, какой идентификатор события изменился, поэтому я могу выполнить и обновить свою БД.
Как я инициализировать часы, как это:
exports.watch = function(req, res){
var channel_id = uuid.v1();
var user_id = req.body.user_id;
var calendar_id = req.body.calendar_id;
authorize(user_id, function(oauth2Client){
var data = {
auth: oauth2Client,
calendarId: calendar_id,
resource: {
id: channel_id,
token: 'calendar_id='+ calendar_id + '&user_id=' + user_id,
address: 'https://api.medradr.com/google-watch',
type: 'web_hook',
params: {
ttl: '36000'
}
}
};
calendar.events.watch(data, function (err, response) {
if (err) {
console.error('The API returned an error: ' + err);
return;
}else{
res.send({ok: true, message: 'Listener created', result:response});
}
});
});
}
Duplicate. На этот вопрос был дан ответ [http://stackoverflow.com/questions/18206024/update-database-if-change-in-google-calendar-event). – noogui
На эту нить не отвечает. Если вы прочитаете мой первый вопрос, вы увидите, что у меня были настроенные push-уведомления, и я получал push-уведомления каждый раз, когда что-то происходит в этом календаре. Реальный вопрос: насколько изменились события, вызванные триггерами push-уведомлений? Я уже нашел решение и разместил здесь ответ. –