Gmail API i aplikacja WPF

0

Cześć.

Mam do napisania program, którego jedną z funkcjonalności jest obsługa (w podstawowej formie) poczty gmailowej. W sensie wysyłanie wiadomości, odbieranie. W tym celu, chciałbym skorzystać z GMail API- trochę mi się to miesza.
Rozumiem, że taki serwis, po uprzedniej autentykacji i autoryzacji usera, zwróci mi wiadomości w postaci np. formatu json? Korzystał ktoś z tego API?

Pierwszy raz będę podłączać się do zewnętrznego serwisu i nie jestem pewien, czy do końca dobrze zrozumiałem. Na stronie googla (link) opisali pewien pattern:

"At a high level, all apps follow the same basic authorization pattern:

  1. During development, register the application in the Google Developers Console.
  2. When the app launches, request that the user grant access to data in their Google account.
  3. If the user consents, your application requests and receives credentials to access the Gmail API.
  4. Refresh the credentials (if necessary)."

Zarejestrowałem swoją apkę w tym panelu, dostalem credentials w postacji jsona- tam mam swoje id, którego mam użyć do autentykacji (w punkcie drugim)?
User Autentykuje się raz? Na czym to polega?

Nie chodzi mi o wgłębianie się w szczegóły, tylko ogólny zarys, czym to się je- na jakiej podstawie user się autentykuje, co jest potrzebne, aby dokonać autoryzacji jakiejś operacji (z tego co wyczytałem, tymi operacjami są requesty http), może coś o tym protokole OAuth 2, tak, żebym chociaż wiedział, czego szukać i czy to jest bardzo trudne. :)

0

Przy pierwszej autoryzacji jest generowany token którego używasz przy kolejnych operacjach odczytanie/wysyłanie maili itp. tokeny mają zawsze jakiś czas ważności 1h, 2h... 24h zależy. Ale nie musisz się bawić w tworzenie obsługi gmail api od zera bo masz gotową bibliotekę Install-Package Google.Apis.Gmail.v1. Dokumentacje i przykłady masz tutaj: https://developers.google.com/gmail/api/quickstart/dotnet

0

Czyli mogłoby to działać na zasadzie:

  • Uruchamiam program
  • Otwiera się okienko przeglądarki z panelem logowania do Gmail
  • User się loguje
  • User dostaje na swój lokalny dysk token
  • Wyciągam maile i zapisuje je we własnej bazie danych
  • Dalsze operacje...
    ?

Po co w takim razie ten plik client_secret.json i po co musiałem rejestrować tą aplikację w tej ich Google Developers Console, używając swojego maila?

1
S-cat napisał(a):

Po co w takim razie ten plik client_secret.json i po co musiałem rejestrować tą aplikację w tej ich Google Developers Console, używając swojego maila?

Bo chcesz korzystać z gmail api a taki jest tam sposób autoryzacji/dostępu, co prawda gmail api nie dostarcza dużo więcej funkcjonalności niż łączenie się za pomocą IMAP i SMTP.
Użycie gmail api ma dwie zalety:

  1. Nie musisz mieć osobnej obsługi IMAP a osobnej SMTP bo wszystko jest jednym serwisie.
  2. Jak piszesz program który ma pobierać maile z wielu skrzynek poprzez konto serwisowe to jest wygodniejsze i bezpieczniejsze bo użytkownicy nie musza podawać własnych haseł do skrzynek.

Natomiast w przypadku użycia IMAP/SMTP nie ograniczasz się tylko do gmaila bo większość serwisów pocztowych obsługuje te dwa protokoły, więc jak piszesz zwykłego klienta pocztowego typu outlook, thunderbird itp. użyj IMAPa i SMTP.

0

Ok, dziękuję ci bardzo za pomoc. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1