2014-01-23 1 views
2

Я пытаюсь добавить аутентификацию OAuth в программу C#, которая работает с Gmail, используя IMAP. Фактическая команда AUTHENTICATE XOAUTH2 в IMAP работает отлично, если я получаю токен доступа с игровой площадки OAuth 2.0. Однако мои попытки включить программу для получения самого токена доступа застопорились. Я читал RFC и имею немного представление о том, что происходит, но я все еще изо всех сил пытаюсь понять это практически. Поэтому я прошу о помощи.Аутентификация Google OAuth 2.0 в установленном приложении C#

Код я терплю неудачу с выглядит следующим образом, копируется из образца here:

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 

I понять, что мне нужно установить URI перенаправления «urn: ietf: wg: oauth: 2.0: oob», но я не понимаю, как это сделать и понять, почему образец не может этого сделать.

Большое спасибо за любую помощь ...

ответ

1

Похоже, что вы используете клиентские секреты веб-приложения и не установлены клиентские секреты приложения.

Вы должны проверить в облачной консоли, что вы используете Установленное приложение. Тогда у вас не будет никаких проблем, потому что установленному приложению не нужно регистрировать URI.

+0

А, да. Я задавался вопросом, почему в json, который я загрузил, вместо него была установлена ​​«сеть». Я, должно быть, полностью пропустил, где должен был указать установленное приложение. Еще раз спасибо. – Hieronymous