私は、クライアントがコードとしてサーバーに送信したものからトークンを取得するために、Google API クライアントdotnet とチュートリアルからGoogleAuthorizationCodeFlowシナリオを実装しました。しかし、私が呼び出すと、次のエラーが発生します:flow.ExchangeCodeForTokenAsync
{"Error:\"invalid_grant\", Description:\"\", Uri:\"\""}
google dotnet api クライアント ライブラリを使用して google authentication invalid_grantとgusclass oauth 2 を読みましたが、役に立ちませんでした。とてもシンプルに違いないと思いますが、なぜうまくいかないのかわかりません。クライアント側では、 Satellizerを使用しました。これが私のサーバー コードです。
public bool PostExchangeAccessToken(GoogleClientAccessCode code)
{
string[] SCOPES = { "email" };
IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = new ClientSecrets()
{
ClientSecret = "******",
ClientId = "********.apps.googleusercontent.com"
},
Scopes = SCOPES
});
try
{
TokenResponse token;
token = flow.ExchangeCodeForTokenAsync("*****@gmail.com", Newtonsoft.Json.JsonConvert.SerializeObject(code), "https://localhost:44301/",
CancellationToken.None).Result;
}
catch (Exception ex)
{
throw ex;
}
return true;
}
何が問題ですか?