我正在尝试使用我的 Windows 8 应用程序的 Google OAuth2 API 将我的授权代码交换为令牌,但我不断收到 HTTP 400 错误。
这就是我执行请求的方式(简化):
var url = "https://accounts.google.com/o/oauth2/token";
var body = "code=4/LEXF1iAVRZvfCfdQg9r1aFqoYDgV&client_id=904019870963.apps.googleusercontent.com&client_secret=[removed]&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code";
HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.PostAsync(new Uri(url), new StringContent(body));
response.EnsureSuccessStatusCode();
Visual Studio 通常只是简单地给我一个 HTTP 400 错误请求错误,当我在 Fiddler 中尝试同样的事情时,我也会收到一个 HTTP 400 错误,但内容如下:
21
{
"error" : "invalid_request"
}
0
我阅读了有关 Google OAuth 的所有文档,我在 Google 和 StackOverflow 上搜索了这个问题,我尝试在我的代码中更改所有不同类型的东西(UrlEncode 等),我使用 Google API Playground 来查看它的请求类型执行它并将其与我自己的请求进行比较(除了返回 URL、身份验证代码和用户代理之外,找不到差异)。无论我做什么,我都无法正常工作,我已经被困了好几个小时了。
有谁可以帮我离开这里吗?