C# ile Google Calendar API Kullanımı

C# ile Google Calendar API Kullanımı

Merhaba. Bu yazıda size C# ile Google Calendar API Kullanımı hakkında bilgiler sunacağım. Bir önceki yazıdan sonra bir başka bilgi içerikli yazı ile devam edeceğiz.

C# ile Google Calendar API Kullanımı

Google Calendar API için Gereksinimler

Geliştirmeye başlamadan önce şu gereksinimleri sağlıyor olmalısınız:

  • Visual Studio 2013 ve sonrası.
  • İnternet ve tarayıcı.
  • Google Takvim uygulamasının aktif olduğu bir google hesabı.

Bu gereksinimleri muhtemelen sağlıyorsunuz. En azından böyle bir makaleye gelmiş iseniz bu gereksinimlerde üçü de sizde var demektir. Ardından şu adrese gidelim. Karşınıza gelen ilk ekranda Proje Oluştur seçili olacak şekilde Devam butonuna tıklayalım.

Eğer herhangi bir hata ile karşılaşmazsanız bir sonraki ekranda sizi API etkinleştirildi şeklinde bir bilgi mesajı karşılayacak:

Artık google API’ımız hazır durumda. Şu anda bazı kimlik bilgilerine ihtiyacımız var. Henüz geliştirme aşamasında o bilgilere sahip olmadığımız için herhangi bir aktivite gerçekleştiremeyeceğiz. Sonraki ekranda projemiz için kimlik bilgisinin belirtilmesi gerekiyor. Öncelikli olarak Hangi API’yı kullandığımızı soruyor bize. Bu projede takvim projesi olduğu için uygun olanı seçiyoruz.

Bir diğer en önemli nokta ise bu projenin nereden çağırılacağı bilgisinin belirtilmesi. Eğer hatalı bilgi verirseniz oluşturulan API ile işlem yapamayacaksınız. Ben Windows Form üzerinde yapacağımı varsayarak Diğer Kullanıcı Arayüzü seçeneğini seçiyorum. Hangi verileri işleyeceğimiz konusu ise bizim için Kullanıcı Verileri olabilir. Ben şu an için öyle seçtim.

Kimlik bilgisi oluşturmak için ilk adım tamamlandı. Artık bu kimliğe bir de isim ataması yapmamız gerekiyor. Uygun bir isim verirsiniz artık.

Sonraki ekrandan e post aadresini seçerek devam edelim

Bir sonraki ekranda ise üzerini beyazla karaladığım İstemci Kimliği ve İstemci Gizli Anahtarı bize sunulmakta. Bu uygulamamızı diğer bütün kullanıcılardan özel yapan anahtarların olduğu sayfadır. Bunu gizli tutmanız iyi olacaktır.

Şu anda her şeye sahibiz. Artık visual studio ile yeni bir windows form projesi açalım ve nuget package console’a giderek şunu yazalım:

Bu google tarafından hazırlanan Google API’larının bulunduğu kütüphaneyi indirecektir. Özellikle takvim için yazılan arayüzü indiriyor. Sürümün v3 olduğuna dikkat edelim. Kendisi referansları otomatik olarak eklediği için herhangi bir referans eklemesi gerçekleştirmemiz gerekmiyor.

Kütüphaneleri Projede Kullanma

Google Calendar API ile UserCredential Ayarlama

Google ile birlikte gelen kütüphanede yer alan UserCredential sınıfını kullanarak kullanıcı authorization işlemlerini yapmalıyız. Bu sınıf aslında bir oAuth2 namespace’ine ait. Bu sınıfın instance’ını  asenkron bir metod olan AuthorizeAsync metodu ile gerçekleştireceğiz. Örnek:

Artık uygulama scope olarak user tarafında var olacak ve takvim servisiyle entegre olarak çalışacak duruma gelmiş halde. Bu işlemin ardından servis oluşturalım. Bu servis parametre olarak uygulama adını ve credential ile authorize edilen class instance’ını alıyor. Örnek:

Google Calendar API ile Yeni Etkinlik Oluşturma

Takvim API başarılı bir şekilde gerçekleşti ise yeni bir etkinlik set edebilir durumdayız demektir. Bu işlem için Event sınıfını kullanacağız. Event sınıfı kendi içerisinde bazı fieldlara sahip. En çok kullanılabilir olanları Summary, Location, Description ve Start ile End olabilir. Bu temel olarak bir etkinlik oluşturmanın gereksinimlerini bize sağlıyor. Ayrıca siz katılımcılar düşünüyorsanız da Attendees fieldına mail belirtebiliyorsunuz. Basit bir örnek kodla açıklayayım:

Yukarıda yer alan temel bilgileri görebiliyoruz. EventAttendee sınıfını virgülle birden fazla şekilde kullanabiliyoruz. Yani birden fazla katılımcıyı bu etkinliğe kayıt edebiliyoruz. Bu aşamadan sonra önemli bir konu ise hatırlatıcılar. Katılımcıları etkinlik hakkında bilgilendirmek için Reminder fieldına RemindersData türünden bir class ile bildirim yapmalıyız.

Bu class ilk Field olarak UseDefault türünden varsayılan olarak bir kullanım olup olmadığını ayarlatıyor. EventDeminder class’ı ise Minutes ve Method alanlarına sahip. Burada da yukarıdaki örnekte olduğu gibi çoklu kullanım mevcut.

Örneğin bu işlemlerde methodlar email ve popup üzerinden çalışıyor. Popup kısmı tarayıcıda çıkan alertten ibaret. Email ise katılımcıların tamamına email yollatıyor. Dakikalar ise 10 dakika ya da 24 * 60 üzerinden gösterilebilir. Son aşamada ise calendarId belirteceğiz ve oluşturduğumuz newEvent instance’ını EventResource türüne bildireceğiz. Örnekleyelim:

Soru ve görüşleriniz için [email protected] adresine mail atabilirsiniz.

  1. Çok teşekkürler.
    Şu an gmail takvimimle deneme yaptım çalıştı. 🙂

  2. Merhaba;

    İnternet üzerinde ki makalenizi uygulayarak local de calendar apiyi çalıştırdım ve kayıt girişi listeleme silme, hepsini yapabildim.
    Ama projeyi Publish edip web’e attığımda çalışmadı.

    İnternetten araştırdığımda GoogleWebAuthorizationBroker.AuthorizeAsync metodu kullanıcının oturum açıp izin vermesi gerektiği için olmuyor şeklinde cevaplar gördüm.

    Bunu webde nasıl çalıştırabilirim farklı bir Outh2 kimliğimi gerekli ya da redirect_url gibi bilgiler mi gerekli tam çözemedim.

    Eğer biliyorsanız bu konu hakkında yardımınızı rica ediyorum.
    Şimdiden teşekkürler.

  3. Yazı için teşekkürler. Local de IIS üzerinde çalışıyor ancak sunucuya atıldığında çalışmıyor. Günlerdir araştırıyorum ve GoogleWebAuthorizationBroker’ın sadece clientta çalışabileceğini yazmışlar hep, alternatif yolları izledim ancak hiç bir yol çalışmadı. Google dokümanları bu konuda gerçekten çok yetersiz. Sadece localde çalışması hiç bir işe yaramıyor tahmin edersiniz ki, önerebileceğiniz başka bir yol var mı ?

Comments are closed.

C# ile CSV Dosyalarını Okumak
Up Next:

C# ile CSV Dosyalarını Okumak

C# ile CSV Dosyalarını Okumak