I am trying to authenticate my application using OAuth2 and use the thread of installed applications (get the authentication code and then request a token). I get 400 bad request error when requesting a token in the GetResponse () line. My code is as follows:
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
The specifics of the error are below:
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
I looked at Google GetAccessToken: Bad Request 400 and Google GData.Net OAuthUtil.GetAccessToken 400 Bad Request , but did not find a solution suitable for this code. I already checked all the proposed solutions and implemented them, but so far no luck.
source share