Я следую за Google .Net Quickstart. Я правильно (я считаю) настроить приложение в консоли разработчиков и получил это в контроллере MVC ...GMail API Неподтверждение подлинности
public class HomeController : Controller
{
static string[] Scopes = { GmailService.Scope.GmailReadonly };
static string ApplicationName = "APP NAME";
public ActionResult Index()
{
ViewBag.Title = "Home Page";
Run();
return View();
}
private void Run()
{
UserCredential credential;
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "<<MY REAL CLIENT ID IS HERE>>",
ClientSecret = "<<MY REAL CLIENT SECRET IS HERE>>"
},
Scopes,
"<<MY EMAIL ADDRESS>>",
CancellationToken.None, new FileDataStore("Mail.Labels")).Result;
}
}
Я поставил проект до запуска на порту 37623 каждый раз, и у меня есть настройте клиента на консоли разработчика, чтобы разрешить перенаправление на http://localhost:37623/Home/Index
.
Когда я запускаю приложение, я предлагаю список учетных записей GMail (у меня есть пара), хотя я четко указал, какую учетную запись я хочу использовать. Когда я выбираю учетную запись для выбора учетной записи, сразу отображается страница с ошибкой, на которой мне вернули ошибку 400: redirect_uri_mismatch.
Если посмотреть на детали запроса на странице ошибок он показывает это ...
access_type=offline
scope=https://www.googleapis.com/auth/gmail.readonly
response_type=code
redirect_uri=http://localhost:41509/authorize/
client_id=<<MY CLIENT ID>>
Как вы можете видеть, redirect_uri является неправильно; он указывает на порт 41509 (в этом случае он изменяется с каждым вызовом).
Что мне не хватает? Что я должен делать, а я нет? Кажется, что в любом случае не существует настройки URI перенаправления при вызове GoogleWebAuthorizationBroker.AuthorizeAsync
Я думал, что это будет 10-минутное упражнение. :-(