Kelola Google Calendar menggunakan Gmail Client
Menambahkan, Mengedit, dan Menghapus Kalender Gmail
Aspose.Email memungkinkan aplikasi mengelola kalender Gmail menggunakan IGmailClient yang menyediakan fitur seperti menambahkan, menghapus, dan memperbarui kalender Gmail. Kelas klien ini mengembalikan daftar objek tipe ExtendedCalendar yang berisi informasi tentang item kalender Gmail. IGmailClient kelas ini menyediakan fungsi-fungsi berikut untuk kalender:
- CreateCalendar Dapat digunakan untuk menyisipkan kalender baru
- ListCalendars Dapat digunakan untuk mendapatkan daftar semua kalender dari seorang klien
- DeleteCalendar Dapat digunakan untuk menghapus kalender
- FetchCalendar Dapat digunakan untuk mengambil kalender tertentu milik klien
- UpdateCalendar Fungsi ini digunakan untuk menyisipkan kembali kalender yang telah dimodifikasi dari klien
Untuk mengakses kalender, GoogleTestUser diinisialisasi menggunakan kredensial akun Gmail. GoogleOAuthHelper digunakan untuk mendapatkan token akses pengguna yang selanjutnya digunakan untuk menginisialisasi IGmailClient.
Menyisipkan, Mengambil, dan Memperbarui Google Calendar
Untuk memasukkan kalender, inisialisasi objek tipe Calendar dan masukkan menggunakan CreateCalendar() fungsi. CreateCalendar() mengembalikan ID kalender yang baru dimasukkan. ID ini dapat digunakan untuk mengambil kalender dari server. Potongan kode berikut menunjukkan cara menyisipkan, mengambil, dan memperbarui kalender.
Menghapus Kalender Google Tertentu
Untuk menghapus kalender tertentu, kita harus mendapatkan daftar semua kalender klien dan kemudian menghapusnya sesuai kebutuhan. ListCalendars() mengembalikan daftar ExtendedCalendar yang berisi kalender Gmail. Potongan kode berikut menunjukkan cara menghapus kalender tertentu.
Kontrol Akses Kalender
Aspose.Email memberikan kontrol penuh atas akses ke item kalender. ListAccessRules() fungsi disediakan oleh IGmailClient yang mengembalikan daftar AccessControlRule. Informasi aturan individual dapat diambil, dimodifikasi, dan disimpan kembali untuk kalender klien. IGmailClient berisi fungsi-fungsi berikut untuk mengelola aturan kontrol akses.
- ListAccessRules Fungsi ini menyediakan daftar AccessControlRule
- CreateAccessRule Fungsi ini membuat aturan akses baru untuk sebuah kalender.
- UpdateAccessRule Fungsi ini digunakan untuk memperbarui aturan akses.
- FetchAccessRule Dapat digunakan untuk mengambil aturan akses tertentu untuk kalender klien
- DeleteAccessRule Fungsi ini digunakan untuk menghapus aturan akses.
Potongan kode berikut menunjukkan cara menggunakan fungsi untuk mengelola aturan akses:
Pengaturan Klien Kalender dan Informasi Warna
Aspose.Email mendukung akses ke pengaturan Klien dengan menggunakan IGmailClient.GetSettings(). Ini mengembalikan daftar pengaturan seperti di bawah ini:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- weather
- customCalendarMode
- timezoneLabel
- timezone
- useKeyboardShortcuts
- country
Info warna untuk klien juga dapat diambil menggunakan IGmailClient.GetColors(). Objek info warna ini mengembalikan daftar warna Latar Depan, warna latar belakang serta tanggal dan waktu pembaruan.
Akses Pengaturan Klien
Potongan kode berikut menunjukkan cara fungsi-fungsi dapat digunakan untuk mengakses pengaturan klien:
Akses Informasi Warna
Potongan kode berikut menunjukkan cara fungsi-fungsi dapat digunakan untuk mengakses pengaturan warna klien.
Kelola Janji Kalender Google
Aspose.Email menyediakan fitur untuk bekerja dengan Janji di kalender Google. Tugas berikut dapat dilakukan pada janji di kalender Google:
- Tambahkan Janji.
- Ambil daftar janji.
- Ambil janji tertentu.
- Perbarui janji.
- Pindahkan janji dari satu kalender ke kalender lain.
- Hapus janji.
IGmailClient menyediakan fungsi seperti CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment dan DeleteAppointment.
Menambahkan Janji ke Google Calendar
Contoh kode berikut menunjukkan fitur menambahkan janji dalam kalender. Untuk mencapainya, ikuti langkah-langkah berikut:
- Buat dan sisipkan kalender.
- Mengambil daftar janji dari kalender baru.
- Buat sebuah janji.
- Menyisipkan janji.
Ambil dan Perbarui Janji Kalender Google
Berikut ini demonstrasi pengambilan dan pembaruan kalender:
- Ambil janji tertentu.
- Ubah janji.
- Perbarui janji di kalender.
Diasumsikan bahwa kalender dengan id "calendarId" dan id unik janji "AppointmentUniqueId" sudah diambil. Potongan kode berikut memperlihatkan cara mengambil dan memperbarui sebuah janji.
Pindahkan dan Hapus Janji di Kalender Google
Janji dapat dipindahkan dengan menyediakan kalender sumber, kalender tujuan, dan id unik janji di kalender sumber. Potongan kode berikut memperlihatkan cara memindahkan dan menghapus sebuah janji.
Query FreeBusy untuk Kalender Google
Aspose.Email menyediakan mekanisme kueri untuk memeriksa apakah sebuah janji jatuh tempo atau tidak sesuai kriteria. Kelas FreebusyQuery disediakan untuk tujuan ini yang memungkinkan menyiapkan kueri untuk kalender tertentu.
Contoh kode ini mendemonstrasikan fitur kueri kalender. Tugas berikut dilakukan dalam contoh ini:
- Buat dan sisipkan kalender
- Buat janji
- Masukkan janji
- Siapkan FreeBusyQuery
- Dapatkan FreebusyResponse
// 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);
}
}