i'm building mvc application in user must sign in google provide offline access info. getting access code via javascript view , sending controller. controller making post request google api keep getting bad request 400.
has managed implement ?
string baseuri = "https://www.googleapis.com/oauth2/v3/token/"; string parcode = string.format("code={0}",code); string parsecret = "client_secret=******"; string parid = "client_id=*******************"; string parredirect = "redirect_uri=https://localhost:44301"; string postdata = string.format("{0}&{1}&{2}&{3}", parcode, parredirect, parid, parsecret); uri posturi = new uri(baseuri); asciiencoding encoding = new asciiencoding (); byte[] data = encoding.getbytes (postdata); var request = (httpwebrequest)webrequest.create(baseuri); request.method = "post"; request.contenttype = " application/x-www-form-urlencoded"; request.contentlength = postdata.length; httpwebresponse response; stream newstream = request.getrequeststream(); newstream.write(data, 0, data.length);
you're missing grant_type parameter should set authorization_code. should form-encode individual parameter values. latter convenient use namevaluecollection in:
namevaluecollection outgoingquerystring = httputility.parsequerystring(string.empty); outgoingquerystring.add("code", code); //...etc. other parameters string postdata = outgoingquerystring.tostring(); now postdata encoded usage in form post.
Comments
Post a Comment