Możesz używać ClientLogin do robienia rzeczy w tle, ale jest on zastępowany (powoli) i nie działa ze wszystkimi kontami Google (dwuetapowymi), więc proponuję trzymać się OAuth2, to na pewno działa.
Jak to zrobić, to otworzyć kontrola WebBrowser
, upewniając IsScriptEnabled="true"
następnie skierować go na
https://accounts.google.com/o/oauth2/auth?client_id=xxx&redirect_uri=https://www.mydomain.com/oauth2callback&scope=xxx&response_type=code
Naprawdę ważnym elementem jest przekierowanie. Następnie należy podłączyć metodę Navigating
dla kontrolki WebBrowser
, aby przechwycić przekierowanie do tego adresu URL.
<phone:WebBrowser Name="webbrowser" Navigating="webbrowser_Navigating" IsScriptEnabled="true" />
private void webbrowser_Navigating(object sender, NavigatingEventArgs e) {
if (e.Uri.Host.Equals("www.mydomain.com")) {
e.Cancel = true;
HandleOAuthResponse(e.Uri.Query);
}
}
To daje powrotem ciągu kwerendy Google przekierowuje z którym ma code=xxx
które następnie wykonaj pozostałe docs i wymienić go na znak, który będzie trwał 30 min i token odświeżania zachować uwierzytelnianie aktywne.
To bardzo pomogło ... dzięki za tonę – Apoorva