我可能在這裏丟失了一些令人難以置信的明顯東西,所以這就是爲什麼我問我的問題......希望有人能看到我我錯過了。上週我剛剛第一次瞭解到OAuth,我試圖用它(在這種情況下)在他人登錄並授權後從其中提取聯繫人列表。Google + OAuth和/或DotNetOpenAuth獲取聯繫人列表 - VB.net
這是我第一次嘗試使用谷歌.NET庫:
Sub InviteGmailContactsOld()
Call google_api.GetClientCredentials(Vars.Server_name)
Dim Input_URL As String = google_api.Token_Request_URL & "?scope=" & OverrideEncode("https://www.google.com/m8/feeds/") & "&oauth_callback=" & OverrideEncode(Vars.Site_Root & "my-profile/manage-connections/invite-connections/google/")
Dim Input_URI As New Uri(Input_URL)
Dim Authenticator As OAuth3LeggedAuthenticator = New OAuth3LeggedAuthenticator("Politistream API", google_api.Client_ID, google_api.Client_Secret, String.Empty, String.Empty)
Dim Auth_Request As WebRequest = Authenticator.CreateHttpWebRequest("GET", Input_URI)
Dim Final_Request As WebRequest = WebRequest.Create(Input_URI)
Dim Auth_Headers As String = Auth_Request.Headers.ToString()
Final_Request.Headers.Add(Auth_Headers)
Final_Request.Method = "GET"
Response.Write(Final_Request.Headers.ToString() & " <br />" & Final_Request.RequestUri.ToString & "<br />")
Dim Auth_Response As String = Common.WebRequestToStringResponse(Final_Request)
End Sub
在幾個變化試過這一點,無論我做什麼,我的一切從谷歌後面是400錯誤的請求。
然後我試圖DotNetOpenAuth:
Sub InviteGmailContacts()
' GMail uses openID because OAuth doesn't work properly.
Dim openId As New OpenIdRelyingParty
Call google_api.GetClientCredentials(Vars.Server_name)
Dim New_URL As UriBuilder = New UriBuilder(Request.Url.ToString)
Dim Auth_Request As IAuthenticationRequest = openId.CreateRequest(google_api.OpenID_Login_URL, New_URL.Uri, New_URL.Uri)
Auth_Request.RedirectToProvider()
End Sub
這工作,我能得到所要求的標識回來。我沒有的問題是,我完全不知道我應該怎麼處理它,而且我無法找到任何我可以跟隨的東西,或多或少地製造我自己的東西。
理想情況下,我正在尋找的是一個代碼示例,它不一定是完整的,但至少足夠連貫以至於我可以得到我想要去的地方。如果不這樣做,那麼從正常水平下降三個陰影的解釋就足夠了。
謝謝。
OAuthConsumerWpf就是一個很好的例子。但我不知道爲什麼驗證碼無法回撥。用戶必須手動輸入驗證碼並單擊完成按鈕。是否用於確認目的?有沒有辦法將驗證碼自動發佈回WPF表單。 – Don 2013-09-08 16:57:07
我注意到OAuthConsumerWpf是一個OAuth2項目。這是否意味着可以從提供商處回傳驗證碼? – Don 2013-09-08 19:55:21