DotNetOpenAuth4.2.0.13024を使用してGoogleのOAuth2トークンを取得する際に問題が発生しました。
Googleエンドポイントhttps://accounts.google.com/o/oauth2/authに承認リクエストを正常に送信できるようになりました
ユーザーが[OK]をクリックすると、Googleは適切な「コード」クエリ文字列を使用してコールバックURLを期待どおりに呼び出します。
ただし、このコードをトークンと交換することはできません。「プロトコル例外が処理されませんでした」という実行と、内部例外としての「400Badrequest」で呼び出しが失敗し続けるためです。これは私がトークンを交換するために使用しているコードです
private static AuthorizationServerDescription authServerDescription = new AuthorizationServerDescription
{
TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"),
AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth")
};
static GoogleContacts()
{
Client = new WebServerClient(authServerDescription, "{my_cliend_id}", "{me_secret_key}");
}
var authorization = Client.ProcessUserAuthorization(); // <- Exception is thrown here
if (authorization != null)
{
Authorization = authorization;
Response.Redirect(Request.Path); // get rid of the /?code= parameter
}
PS:DotNerOpenAuthの新しいバージョンがリリースされたようですが、zipダウンロードがまだ古いバージョンを指しているため、Nugetが失敗し続けるため、取得できません:(