我正在使用以下C#代码尝试将我的授权代码交换为访问代码:
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。它们对我的应用程序是正确的。有人可以指出正确的方向吗?
最佳答案
我真的想通了。我正在输入“ redirect_url”。它应该是“ redirect_uri”
关于c# - 尝试使用Google API将授权码交换为访问码时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14986758/