我嘗試使用Google任務服務的Windows Phone 7的小應用程序,問題是我無法通過登錄。在WP7上使用Google oAuth
我已閱讀文檔中給出的所有步驟,並按照文檔
http://code.google.com/apis/accounts/docs/OAuth2.html#IA根據需要使用Web控件登錄的文檔。
有什麼辦法,我可以只是期望用戶名密碼,並在後臺獲取身份驗證令牌?
我嘗試使用Google任務服務的Windows Phone 7的小應用程序,問題是我無法通過登錄。在WP7上使用Google oAuth
我已閱讀文檔中給出的所有步驟,並按照文檔
http://code.google.com/apis/accounts/docs/OAuth2.html#IA根據需要使用Web控件登錄的文檔。
有什麼辦法,我可以只是期望用戶名密碼,並在後臺獲取身份驗證令牌?
您可以使用ClientLogin做事情的背景,但它是被替換(慢),不與所有谷歌帳戶(兩步)工作,所以我建議你堅持的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
方法,以攔截重定向到該網址。
<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);
}
}
這會給你回查詢字符串谷歌與重定向有code=xxx
你然後按照文檔的其餘部分並換取一個令牌,將持續30分鐘,並刷新令牌來保持認證有效。
有一個look at this post它是關於一個Twitter客戶端,但Twitter也使用OAuth。
編輯
我瞭解更多關於這一點,它似乎是一個問題,因爲它是強制使用的網頁,並有用戶的訪問代碼複製到應用程序。 It appears to be hard/impossible to scrape the Webbrowser目前我找不到任何對真實解決方案的參考。
我想你可以使用webBrowser.SaveToString()方法來取消webBrowser。
實際上,您可以通過採用e.Uri.ToString()
來刮取瀏覽器URI,並使用替換方法刪除不需要的項目,例如thestring.Replace("http://fakeuri.com/code=","");
我遇到的唯一問題就是訪問令牌。
這幫了很多......謝謝一噸 – Apoorva