Google Takvim API'sinin bazı işlevlerini uyguluyorum. Google takvimiyle senkronizasyon yapabilme özelliğine sahip bir takvimim var. Bu, takvimimden takvim ve etkinlikleri Google Takvim hesabına oluşturabilir ve düzenleyebilirsiniz. Karşılaştığım ana sorun, etkinliği doğrudan benim google takvimimden güncellerse. Push bildirimlerini uygulayıp şu şekilde yanıt aldım:Google Takvim Etkinliği değiştirildiği zaman DB'yi Güncelle
{
"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"
}
Ancak bu yanıt çok geneldir. Örneğin, bu takvimde 1000 etkinliğim varsa ve 1000 olayın tamamını güncellerseniz. Her zaman aynı bildirimi 1000 alacağım. Bilmek istiyorum, hangi olay kimliğinin değiştiğini bulmak mümkün ise, bu yüzden DB'mi gerçekleştirebilir ve güncelleyebilirim.
Ben nöbet init yolu şu şekildedir: hangi olayları almak için iyi bir yol arıyoruz insanlar için
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});
}
});
});
}
Çoğalt. Bu [konu] bölümünde soru yanıtlandı (http://stackoverflow.com/questions/18206024/update-database-if-change-in-google-calendar-event). – noogui
Bu iş parçacığında düzgün bir şekilde yanıtlanmadı. İlk sorumu okursanız, push bildirimlerinin başarıyla yapılandırıldığını görecek ve her defasında o takvimdeki bir şey olduğunda push bildirimleri aldım. Asıl soru şuydu: Şimdi push olaylarının tetiklediği olayların hangileri değişti? Zaten bir çözüm buldum ve cevabı buraya yazdım. –