繁体   English   中英

尝试使用Google API将授权码交换为访问码时出错

[英]Error when trying to exchange authorization code for access code using Google API

我正在使用以下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的OAuth Playground获得的内容相匹配,这使这个问题真的很奇怪。 我已经三重检查了我的ClientId和Client Secret。 它们对我的应用程序是正确的。 有人可以指出正确的方向吗?

我真的想通了。 我正在输入“ redirect_url”。 它应该是“ redirect_uri”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM