簡體   English   中英

在WP7上使用Google oAuth

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM