VB.NET Google Kalender in Anwendung für Kunden
Wir haben eine Software für unsere Kunden programmiert in welcher für bestimmte Personen Termine angelegt werden.
Diese Termine wurden auch automatisch im Google-Kalender des Kunden angelegt, damit die Mitarbeiter diese mit dem Handy synchronisieren konnten.
alter Code-Beispiel:
Dim query As EventQuery = New EventQuery
Dim service As CalendarService = New CalendarService("test")
service.setUserCredentials("Mein Account@domain.com", "MeinPasswort")
query.Uri = New Uri("http://www.google.com/calendar/feeds/default/private/full")
nun funktioniert dies nicht mehr und wir müssen auf 'OAuth 2.0' umstellen.
Wir haben es geschafft, eine 'client_secret.json' zu erstellen und unseren eigenen Kalender auszulesen.
Doch wie realisieren wir es, dass sich unsere Kunden mit seinem eigenen Google-Kalender anmelden kann, also mit seiner E-Mail und Passwort?
Dim secret As New ClientSecrets
secret.ClientId = "xxxxxx.apps.googleusercontent.com"
secret.ClientSecret = "xxxxxxxxx"
Dim init As New Flows.AuthorizationCodeFlow.Initializer("https://accounts.google.com/o/oauth2/auth", "https://accounts.google.com/o/oauth2/token")
init.ClientSecrets = secret
Dim flow As New Flows.AuthorizationCodeFlow(init)
Dim token As Responses.TokenResponse = flow.LoadTokenAsync("myMail@domain.de", CancellationToken.None).Result
Dim credential As New UserCredential(flow, "myMail@domain.de", token)
Try
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secret, {Google.Apis.Calendar.v3.CalendarService.Scope.Calendar}, "user", CancellationToken.None, ).Result
Catch ex As Exception
MsgBox(ex.Message)
End Try
Wenn wir diesen Code das erste mal ausführen, landen wir auf UNSERER Google-Seite, wir wollen aber Termine hochladen und keine Webseite anzeigen.
Kann jemand helfen?
Diese Termine wurden auch automatisch im Google-Kalender des Kunden angelegt, damit die Mitarbeiter diese mit dem Handy synchronisieren konnten.
alter Code-Beispiel:
Dim query As EventQuery = New EventQuery
Dim service As CalendarService = New CalendarService("test")
service.setUserCredentials("Mein Account@domain.com", "MeinPasswort")
query.Uri = New Uri("http://www.google.com/calendar/feeds/default/private/full")
nun funktioniert dies nicht mehr und wir müssen auf 'OAuth 2.0' umstellen.
Wir haben es geschafft, eine 'client_secret.json' zu erstellen und unseren eigenen Kalender auszulesen.
Doch wie realisieren wir es, dass sich unsere Kunden mit seinem eigenen Google-Kalender anmelden kann, also mit seiner E-Mail und Passwort?
Dim secret As New ClientSecrets
secret.ClientId = "xxxxxx.apps.googleusercontent.com"
secret.ClientSecret = "xxxxxxxxx"
Dim init As New Flows.AuthorizationCodeFlow.Initializer("https://accounts.google.com/o/oauth2/auth", "https://accounts.google.com/o/oauth2/token")
init.ClientSecrets = secret
Dim flow As New Flows.AuthorizationCodeFlow(init)
Dim token As Responses.TokenResponse = flow.LoadTokenAsync("myMail@domain.de", CancellationToken.None).Result
Dim credential As New UserCredential(flow, "myMail@domain.de", token)
Try
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secret, {Google.Apis.Calendar.v3.CalendarService.Scope.Calendar}, "user", CancellationToken.None, ).Result
Catch ex As Exception
MsgBox(ex.Message)
End Try
Wenn wir diesen Code das erste mal ausführen, landen wir auf UNSERER Google-Seite, wir wollen aber Termine hochladen und keine Webseite anzeigen.
Kann jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 349508
Url: https://administrator.de/forum/vb-net-google-kalender-in-anwendung-fuer-kunden-349508.html
Ausgedruckt am: 21.04.2025 um 23:04 Uhr
4 Kommentare
Neuester Kommentar
Servus,
die Google Kalender-API ist eigentlich recht gut dokumentiert...
Vielleicht hilft dir das schon mal weiter, bis sich evtl. hier jemand damit auskennt...
P.S.: Deinen Code kannst du hier auch in entsprechende Tags setzen, damit der auch anständig angezeigt wird...
z.B.:
die Google Kalender-API ist eigentlich recht gut dokumentiert...
Vielleicht hilft dir das schon mal weiter, bis sich evtl. hier jemand damit auskennt...
P.S.: Deinen Code kannst du hier auch in entsprechende Tags setzen, damit der auch anständig angezeigt wird...
z.B.:
Dim secret As New ClientSecrets
secret.ClientId = "xxxxxx.apps.googleusercontent.com"
secret.ClientSecret = "xxxxxxxxx"
Dim init As New Flows.AuthorizationCodeFlow.Initializer("https://accounts.google.com/o/oauth2/auth", "https://accounts.google.com/o/oauth2/token")
init.ClientSecrets = secret

Hi,
du musst den User beim ersten Verwenden der Anwendung auf eine spezielle Webseite im Browser leiten auf der der User sich mit seinen Google-Credentials einloggen muss und deiner Anwendung dort für den Zugriff eine Freigabe für die benötigten Rechte am Google Konto erteilen muss. Hat der User das getan wird ihm ein Code angezeigt. Mit diesem Code kannst du dann das Zugriffstoken für diesen Account bei Google abrufen und für den Zugriff verwenden und abspeichern.
Steht aber alles detailliert in den APIs wenn man sie denn mal lesen würde.
Gruß
du musst den User beim ersten Verwenden der Anwendung auf eine spezielle Webseite im Browser leiten auf der der User sich mit seinen Google-Credentials einloggen muss und deiner Anwendung dort für den Zugriff eine Freigabe für die benötigten Rechte am Google Konto erteilen muss. Hat der User das getan wird ihm ein Code angezeigt. Mit diesem Code kannst du dann das Zugriffstoken für diesen Account bei Google abrufen und für den Zugriff verwenden und abspeichern.
Steht aber alles detailliert in den APIs wenn man sie denn mal lesen würde.
Gruß