2

次の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)BadRequestです。最後の行で発生します。私がオンラインで見た例から、私はそれを正しく行っているように見えます。Fiddler2でコードを実行しましたが、GoogleのOAuth Playgroundから取得したものと一致しているようです。これにより、この問題は非常に奇妙になります。ClientIdとClientSecretをトリプルチェックしました。それらは私のアプリケーションに適しています。誰かが私を正しい方向に向けてくれませんか?

4

1 に答える 1

4

私は実際にそれを理解しました。「redirect_url」を入れていました。「redirect_uri」である必要があります

于 2013-02-20T20:26:17.953 に答える