Я пытаюсь добавить аутентификацию OAuth в программу C#, которая работает с Gmail с использованием IMAP. Фактическая команда AUTHENTICATE XOAUTH2 в IMAP работает отлично, если я получаю токен доступа с игровой площадки OAuth 2.0. Однако мои попытки заставить программу получить токен доступа зашли в тупик. Я прочитал RFC и имею некоторое представление о том, что происходит, но все еще пытаюсь найти во всем этом практический смысл. Поэтому прошу помощи.
Код, с которым у меня не получается, выглядит следующим образом: он скопирован из примера здесь:
ClientSecrets clientSecrets = new ClientSecrets{ClientId = myClientID, ClientSecret = myClientSecret};
string[] scopes = new string[] { "https://mail.google.com" };
Google.Apis.Auth.OAuth2.UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
clientSecrets, scopes, "user", CancellationToken.None).Result;
Когда я запускаю это, я получаю сообщение об ошибке в своем браузере, говорящее:
Error: redirect_uri_mismatch
The redirect URI in the request: http://localhost:59904/authorize/ did not match a registered redirect URI
Я понимаю, что мне нужно установить URI перенаправления «urn: ietf: wg: oauth: 2.0: oob», но я не могу понять, как это сделать, и понять, почему образец не делает этого.
Большое спасибо за любую помощь...