Вы можете использовать ClientLogin для работы в фоновом режиме, но он заменяется (медленно) и не работает со всеми учетными записями Google (двухэтапный), поэтому я бы посоветовал вам придерживаться oAuth2, он определенно работает. 1001 *
Как мне это сделать - открыть WebBrowser
элемент управления, убедившись, что IsScriptEnabled="true"
, а затем направить его на
https://accounts.google.com/o/oauth2/auth?client_id=xxx&redirect_uri=https://www.mydomain.com/oauth2callback&scope=xxx&response_type=code
Действительно важной частью является URL перенаправления. Затем вы подключаете метод Navigating
для вашего WebBrowser
элемента управления, чтобы перехватить перенаправление на этот 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);
}
}
Это вернет вам строку перенаправления Google, в которой есть code=xxx
, с которой вы затем следуете остальным документам и обменяете его на токен, который будет длиться 30 минут, и токен обновления, чтобы поддерживать активную аутентификацию. *