. NET Служба Gmail OAuth передает неправильный / несогласованный URL-адрес RedirectURI - PullRequest
0 голосов
/ 07 мая 2020

Я следую . NET Quickstart для API Gmail, чтобы добавить интеграцию в мое. NET приложение Core 2.2.

По какой-то причине Redirect URI в моем запросе указано , а не тот, который я указал.

учетные данные. json

{
  "web": {
    //redacted,
    "redirect_uris": [ "https://localhost:44393/ExternalAuth/Gmail" ]
  }
}

Панель учетных данных

credentials


enter image description here


Код

UserCredential credential;

using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
  string credPath = "token.json";
  credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
    GoogleClientSecrets.Load(stream).Secrets,
    Scopes,
    "user",
    CancellationToken.None,
    new FileDataStore(credPath, true)
  ).Result;
  Console.WriteLine("Credential file saved to: " + credPath);
}

Кажется, я не могу найти, откуда он это взял; Я предполагаю, что он просто берет его с моей локальной машины, хотя я полагаю, что должен быть способ переопределить URI, включенный в запрос?

1 Ответ

0 голосов
/ 07 мая 2020

Я решил проблему.

При создании учетных данных OAuth в Google тип приложения должен быть Desktop , а не Web Application .

enter image description here

После этого вы должны заметить, что ваш файл credentials.json начинается с installed: вместо web:.

...