[英]Using Google oAuth on WP7
我嘗試了一個使用Google任務服務的Windows Phone 7小應用程序,問題是我無法通過登錄。
我已經閱讀並遵循了文檔中給出的所有步驟
根據我需要使用網絡控件登錄的文檔, http://code.google.com/apis/accounts/docs/OAuth2.html#IA 。
有什么辦法可以讓我期望用戶名密碼並在后台獲取身份驗證令牌?
您可以使用ClientLogin在后台執行操作,但是(正在緩慢地)替換它,並且不能在所有Google帳戶中使用(兩步操作),因此我建議您堅持使用oAuth2,它肯定可以使用。
我該怎么做是打開一個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。 然后,為您的WebBrowser
控件連接一個Navigating
方法,以攔截到該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分鍾的令牌和一個刷新令牌以保持身份驗證有效。
看一下這篇文章,它是關於Twitter客戶端的,但是Twitter也使用OAuth。
編輯
我對此有更多了解,這似乎是一個問題,因為必須強制使用該網頁,並且用戶必須將訪問代碼復制到該應用中。 刮刮Webbrowser似乎很難/不可能,我目前找不到任何有關實際解決方案的參考。
我認為您可以使用webBrowser.SaveToString()方法抓取webBrowser。
實際上,您可以通過使用e.Uri.ToString()
來抓取瀏覽器URI,並使用replace方法刪除不需要的項目,例如thestring.Replace("http://fakeuri.com/code=","");
e.Uri.ToString()
我唯一的問題是訪問令牌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.