Tôi đang cố xác thực ứng dụng của mình bằng OAuth2 và sử dụng luồng 'ứng dụng đã cài đặt' (nhận mã xác thực và sau đó yêu cầu mã thông báo). Tôi nhận được số 400 bad request error
khi yêu cầu mã thông báo trên dòng GetResponse(). Mã của tôi là như sau:Lỗi mã thông báo OAuth của Google - 400 yêu cầu không hợp lệ
Public Sub New()
Dim tokenRequest As WebRequest =
WebRequest.Create("https://accounts.google.com/o/oauth2/token")
Dim requestString As String = "code=<auth-code>" _
& "&client_id=<client_id>" _
& "&client_secret=<client_secret>" _
& "&redirect_uri=http://localhost" _
& "&grant_type=authorization_code"
byteArray = StrToByteArray(System.Web.HttpUtility.UrlEncode(requestString))
tokenRequest.Credentials = CredentialCache.DefaultCredentials
tokenRequest.Method = "POST"
tokenRequest.ContentLength = byteArray.Length
tokenRequest.ContentType = "application/x-www-form-urlencoded"
Dim dataStream As Stream = tokenRequest.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Console.WriteLine("Getting response...")
'Get response
Try
Dim response As WebResponse = tokenRequest.GetResponse()
Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
Dim data As Stream = response.GetResponseStream
Array.Resize(byteArray, 4096)
Array.Clear(byteArray, 0, byteArray.Length)
data.Read(byteArray, 0, byteArray.Length)
response.Close()
Catch wex As WebException
Console.WriteLine("ERROR! : ")
Console.WriteLine(wex.Message)
Console.WriteLine(wex.Status)
Console.WriteLine(wex.Data)
Console.WriteLine(wex.InnerException.Message)
Console.WriteLine(wex.HelpLink)
End Try
End Sub
Các chi tiết cụ thể của lỗi là dưới đây:
The remote server returned an error: (400) Bad Request.
7
System.Collections.ListDictionaryInternal
System.NullReferenceException: Object reference not set to an instance of an obj
ect.
at GADownload.GoogleAnalytics..ctor() in ***.vb:line 86
at GADownload.Main1.Main(String[] args) in ****.vb:line 18
Tôi đã có một cái nhìn tại Google GetAccessToken : Bad Request 400 và Google GData .Net OAuthUtil.GetAccessToken 400 Bad Request nhưng đã không tìm thấy một giải pháp phù hợp với mã này . Tôi đã kiểm tra tất cả các giải pháp được đề xuất và triển khai chúng, nhưng không có may mắn cho đến nay.