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 など) をすべて変更してみました。それを実行し、自分のリクエストと比較しました(戻りURL、認証コード、およびユーザーエージェントを除いて違いは見つかりませんでした)。何をしても、これを機能させることができません。すでに何時間も立ち往生しています。
誰か助けてくれませんか?