2016-07-12 3 views
0

Я следую за 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-минутное упражнение. :-(

ответ

0

Похоже, что это связано с тем, что для типа приложения для идентификатора клиента OAuth, установленного в консоли разработчика Google, было установлено значение «Веб-приложение». Удалите его и создайте новый с типом приложения, «другое» позволяет мне аутентифицироваться.

Смежные вопросы