Vous pouvez utiliser ClientLogin pour faire les choses en arrière-plan, mais il est remplacé (lentement) et ne fonctionne pas avec tous les comptes Google (en deux étapes), donc je vous conseille de rester avec oAuth2.
Comment je le fais est ouvert un contrôle WebBrowser
, en vous assurant IsScriptEnabled="true"
puis pointer à
https://accounts.google.com/o/oauth2/auth?client_id=xxx&redirect_uri=https://www.mydomain.com/oauth2callback&scope=xxx&response_type=code
La partie vraiment importante est l'URL de redirection. Vous devez ensuite connecter une méthode Navigating
à votre contrôle WebBrowser
pour intercepter la redirection vers cette 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);
}
}
Cela vous donnera de nouveau la chaîne de requête google réoriente qui a le code=xxx
que vous suivez ensuite le reste de la documentation et l'échange pour un jeton qui va durer 30 minutes et un jeton de rafraîchissement pour maintenir l'authentification active.
Cela a beaucoup aidé ... merci beaucoup – Apoorva