Auf der Suche nach einer Möglichkeit aus einer C#/.NET Anwendung auf den Google Kalender Eintrag zu erzeugen ware ich lange auf der Suche nach einem einfach verständlichen Beispiel. Hierbei war die Suche recht lange vergeben, deshalb hier ein Beispiel zum Verbindungsaufbau.
Google API Schnittstelle
Zuerst ist die Schnittstelle zu Google notwendig. Hierfür nutze ich die OAuth2. Hierfür müssen wir per Google Developer Console ein neues Projekt erstellen. In diesem muss dann zusätzlich der Calender API aktiviert werden.
Nach dem erstellen eines neuen Projekts wechseln wir in eine neue Ansicht, hier wählen wir unter „APIs und Authentifizierung“ den Reiter „APIs„.
Hier denn alle APIs deaktivieren, außer den „Calender API“
Dann werden auch die Zugangsdaten notwendig. Hierfür sind dann Zugangsdaten notwendig. Dafür wechseln wir in den Reiter „Zugangsdaten“
Hier erstellen wir eine neue „Client-ID„. Hier wählen wir dann „Installierte Anwendungen“
Im Zustimmungsbildschrim tragen wir dann eine E-Mail Adresse ein sowie ein Produktname, der Rest kann frei bleiben.
Hier dann noch einmal „Sonsige“ als Installierte Anwendungstyp auswählen und zu guter letzt auf „Client-ID erstellen“ klicken.
Als Resultat erhalten wir die Client-ID, Clientschlüssel.
C# / .NET Applikation
Die fehlende Pakete, von Google, können wir bequem, durch Nu-GET installieren.
Hierfür einfach in Visual Studio die Console öffnen.
In geöffneten Fenster installieren wir die notwendigen Abhängigkeiten durch
PM> Install-Package Google.Apis.Calendar.v3
In einer Anwendung fügen wir dann den Code ein, die Parameter dann durch die neu erstellen ersetzten. Bei der ersten Ausführung des Programms öffnet sich dann der Webbrowser und wir können Bestätigen das wir auf die Daten bei Google zugreifen wollen. Beim nächsten Start bleibt es uns dann ersparrt.
private CalendarService service; private const string CLId = "123456789123456789123456789123456789.apps.googleusercontent.com"; private const string CLSecret = "ABCDEFGABCDEFG"; private const string AppName = "api-project-123123123"; public Form1() { InitializeComponent(); Init_Kalender(); } public void Init_Kalender() { // Verbindung zum Kalender herstellen List<String> scope = new List<string>(); scope.Add(CalendarService.Scope.Calendar); ClientSecrets CS = new ClientSecrets(); CS.ClientId = CLId; CS.ClientSecret = CLSecret; UserCredential UC = GoogleWebAuthorizationBroker.AuthorizeAsync(CS, scope, "user", CancellationToken.None, new FileDataStore(AppName)).Result; BaseClientService.Initializer initializer = new BaseClientService.Initializer(); initializer.HttpClientInitializer = UC; initializer.ApplicationName = AppName; service = new CalendarService(initializer); } private void simpleButton1_Click(object sender, EventArgs e) //Beim klicken des Buttons wird das Event ausgeführt { string str = "Ich bin ein neuer Kalendereintrag"; //Name des Kalendereintags string CalenderID = "mail@googlemail.com"; //Kalendername try { Event myEvent = new Event(); //Neues Eintrags Erzeugen EventDateTime EStart = new EventDateTime(); EStart.DateTime = DateTime.Now; EventDateTime EEnd = new EventDateTime(); EEnd.DateTime = DateTime.Now.AddHours(+1); myEvent.Start = EStart; myEvent.End = EEnd; myEvent.Summary = str; //Name des Eintrags string res = service.Events.Insert(myEvent, CalenderID).Execute().Summary; //Rückgabe des Resultats MessageBox.Show(res); } catch (Exception f) { MessageBox.Show(f.ToString()); } }
Nach dem erfolgreichen ausführen können wir dann im Google Kalender unseren neuen Eintrag ansehen.
Schreibe einen Kommentar