2013-02-20 70 views
2

我使用下面的C#代码,试图让交换我的授权代码的访问代码访问代码交换授权代码时:错误尝试使用谷歌API

 const string TokenExchangeEndPointUrl = "https://accounts.google.com/o/oauth2/token"; 
     string data = string.Format(
       "code={0}&client_id={1}&client_secret={2}&redirect_url={3}&grant_type=authorization_code", 
       (value), (_clientId), (_clientSecret), (RedirectUri)); 

     var utfenc = new UTF8Encoding(); 
     byte[] buffer = utfenc.GetBytes(data); 
     var req = (HttpWebRequest) WebRequest.Create(TokenExchangeEndPointUrl); 
     req.Method = "POST"; 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.ContentLength = buffer.Length; 

     using (Stream strm = req.GetRequestStream()) 
     { 
      strm.Write(buffer, 0, buffer.Length); 
      strm.Close(); 
     } 
     var response = (HttpWebResponse) req.GetResponse(); 

最后一行是在错误正在发生。我收到的错误是(400)错误的请求。它发生在最后一行。从我在网上看到的例子来看,我似乎做得对。我通过Fiddler2运行代码,它看起来与我从Google's OAuth Playground得到的结果相符,这使得这个问题真的很奇怪。我已经三重检查了我的ClientId和Client Secret。他们对我的申请是正确的。有人可以请指点我正确的方向吗?

回答

4

我其实已经想通了。我把“redirect_url”。它应该是“redirect_uri”