Gmail istemcisi kullanarak Google Takvimlerini yönetin
Gmail Takvimlerini Ekle, Düzenle ve Sil
Aspose.Email, uygulamaların Gmail takvimlerini şununla yönetmesine olanak tanır: IGmailClient Gmail takvimlerine ekleme, silme ve güncelleme gibi özellikler sağlar. Bu istemci sınıfı, Gmail takvim öğeleri hakkında bilgi içeren ExtendedCalendar türünde nesnelerin bir listesini döndürür. IGmailClient sınıf, takvimler için aşağıdaki fonksiyonları sunar:
- CreateCalendar Yeni takvim eklemek için kullanılabilir
- ListCalendars Bir müşterinin tüm takvimlerinin listesini almak için kullanılabilir
- DeleteCalendar Bir takvimi silmek için kullanılabilir.
- FetchCalendar Bir müşterinin belirli bir takvimini almak için kullanılabilir.
- UpdateCalendar Bu fonksiyon, bir müşterinin değiştirilmiş takvimini geri eklemek için kullanılır
Takvimlere erişmek için, GoogleTestUser Gmail hesabı kimlik bilgileriyle başlatılır. GoogleOAuthHelper, kullanıcı için erişim belirtecini alır ve bu belirteç IGmailClient’i başlatmakta kullanılır.
Gmail Takvimlerini Ekle, Getir ve Güncelle
Takvim eklemek için, Calendar türünde bir nesne başlatın ve şunu kullanarak ekleyin: CreateCalendar() fonksiyon. CreateCalendar() yeni eklenen takvimin kimliğini döndürür. Bu kimlik, takvimi sunucudan almak için kullanılabilir. Aşağıdaki kod parçacığı, takvimi ekleme, alma ve güncelleme yöntemini gösterir.
Belirli Google Takvimlerini Sil
Belirli bir takvimi silmek için, bir müşterinin tüm takvimlerini almalı ve ardından gerektiği gibi silmeliyiz. ListCalendars() şunların listesini döndürür: ExtendedCalendar Gmail takvimlerini içerir. Aşağıdaki kod parçacığı, belirli bir takvimi nasıl sileceğinizi gösterir.
Takvim Erişim Kontrolü
Aspose.Email, takvim öğelerine erişim üzerinde tam kontrol sağlar. ListAccessRules() fonksiyonu şunlar tarafından sunulur: IGmailClient listesini döndüren AccessControlRule. Tekil kural bilgileri, bir müşterinin takvimi için alınabilir, değiştirilebilir ve geri kaydedilebilir. IGmailClient erişim kontrol kurallarını yönetmek için aşağıdaki fonksiyonları içerir.
- ListAccessRules Bu fonksiyon, AccessControlRule listesini sağlar
- CreateAccessRule Bu işlev, bir takvim için yeni bir erişim kuralı oluşturur.
- UpdateAccessRule Bu işlev, bir erişim kuralını güncellemek için kullanılır.
- FetchAccessRule Bir müşterinin takvimi için belirli bir erişim kuralını getirmek amacıyla kullanılabilir.
- DeleteAccessRule Bu işlev, bir erişim kuralını silmek için kullanılır.
Aşağıdaki kod parçacığı, erişim kurallarını yönetmek için fonksiyonların nasıl kullanılacağını gösterir:
Takvim İstemci Ayarları ve Renk Bilgileri
Aspose.Email, istemci ayarlarına şunları kullanarak erişimi destekler: IGmailClient.GetSettings(). Aşağıda verilen şekilde ayarların listesini döndürür:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- weather
- customCalendarMode
- timezoneLabel
- timezone
- useKeyboardShortcuts
- country
Benzer şekilde, istemciler için renk bilgisi şu şekilde de alınabilir: IGmailClient.GetColors(). Bu renk bilgisi nesnesi, Ön plan renkleri, arka plan renkleri ve güncelleme tarih ve saatinin listesini döndürür.
İstemci Ayarlarına Erişim
Aşağıdaki kod parçacığı, fonksiyonların istemci ayarlarına erişmek için nasıl kullanılacağını gösterir:
Renk Bilgilerine Erişim
Aşağıdaki kod parçacığı, fonksiyonların istemci renk ayarlarına erişmek için nasıl kullanılacağını gösterir.
Google Takvim Randevularını Yönet
Aspose.Email, Google takvimlerinde randevularla çalışmak için özellikler sunar. Aşağıdaki işlemler Google takvimindeki randevular üzerinde gerçekleştirilebilir:
- Randevu ekle.
- Randevuların listesini al.
- Belirli bir randevuyu al.
- Bir randevuyu güncelle.
- Randevuyu bir takvimden diğerine taşı.
- Randevuyu sil.
IGmailClient şu gibi fonksiyonlar sağlar CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment ve DeleteAppointment.
Google Takvimine Randevu Ekle
Aşağıdaki kod örneği, bir takvime randevu ekleme özelliğini gösterir. Bunu gerçekleştirmek için adımları izleyin:
- Takvim oluştur ve ekle.
- Yeni bir takvimden randevu listesini alın.
- Randevu oluştur.
- Bir randevu ekleyin.
Google Takvim Randevularını Al ve Güncelle
Takvim alımı ve güncellemesi aşağıdaki gibi gösterilmektedir:
- Belirli bir randevuyu al.
- Randevuyu değiştir.
- Takvimdeki randevuyu güncelle.
"calendarId" kimliğine sahip bir takvim ve "AppointmentUniqueId" benzersiz kimliğine sahip bir randevunun zaten alındığı varsayılır. Aşağıdaki kod parçacığı, bir randevuyu nasıl alıp güncelleyeceğinizi gösterir.
Google Takvimde Randevuları Taşı ve Sil
Randevu, kaynak takvim, hedef takvim ve kaynak takvimdeki randevunun benzersiz kimliği sağlanarak taşınabilir. Aşağıdaki kod parçacığı, bir randevuyu nasıl taşıyıp sileceğinizi gösterir.
Google Takvim için FreeBusy Sorgusu
Aspose.Email, kriterlere göre bir randevunun olup olmadığını kontrol etmek için sorgulama mekanizması sağlar. Bu amaçla, belirli bir takvim için sorgu hazırlamayı sağlayan FreebusyQuery sınıfı sunulmuştur.
Bu kod örneği bir takvimi sorgulama özelliğini gösterir. Aşağıdaki görevler bu örnekte gerçekleştirilir:
- Bir takvim oluşturun ve ekleyin
- Bir randevu oluşturun
- Randevu ekle
- FreeBusyQuery hazırlayın
- FreebusyResponse’ı al
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Use the GoogleUser and GoogleOAuthHelper classes below to receive an access token
using (IGmailClient client = GmailClient.GetInstance(accessToken, user.Email))
{
// Initialize calendar item
Aspose.Email.Clients.Google.Calendar calendar1 = new Aspose.Email.Clients.Google.Calendar("summary - " + Guid.NewGuid().ToString(), null, null, "Europe/Kiev");
// Insert calendar and get back id of newly inserted calendar and Fetch the same calendar using calendar id
string id = client.CreateCalendar(calendar1);
Aspose.Email.Clients.Google.Calendar cal1 = client.FetchCalendar(id);
string calendarId1 = cal1.Id;
try
{
// Get list of appointments in newly inserted calendar. It should be zero
Appointment[] appointments = client.ListAppointments(calendarId1);
if (appointments.Length != 0)
{
Console.WriteLine("Wrong number of appointments");
return;
}
// Create a new appointment and Calculate appointment start and finish time
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddHours(1);
// Create attendees list for appointment
MailAddressCollection attendees = new MailAddressCollection();
attendees.Add("user1@domain.com");
attendees.Add("user2@domain.com");
// Create appointment
Appointment app1 = new Appointment("Location - " + Guid.NewGuid().ToString(), startDate, endDate, "user2@domain.com", attendees);
app1.Summary = "Summary - " + Guid.NewGuid().ToString();
app1.Description = "Description - " + Guid.NewGuid().ToString();
app1.StartTimeZone = "Europe/Kiev";
app1.EndTimeZone = "Europe/Kiev";
// Insert the newly created appointment and get back the same in case of successful insertion
Appointment app2 = client.CreateAppointment(calendarId1, app1);
// Create Freebusy query by setting min/max timeand time zone
FreebusyQuery query = new FreebusyQuery();
query.TimeMin = DateTime.Now.AddDays(-1);
query.TimeMax = DateTime.Now.AddDays(1);
query.TimeZone = "Europe/Kiev";
// Set calendar item to search and Get the reponse of query containing
query.Items.Add(cal1.Id);
FreebusyResponse resp = client.GetFreebusyInfo(query);
// Delete the appointment
client.DeleteAppointment(calendarId1, app2.UniqueId);
}
finally
{
// Delete the calendar
client.DeleteCalendar(cal1.Id);
}
}