Подключение к Google Sheets через Azure веб-приложение - PullRequest
1 голос
/ 22 января 2020

Я работаю над основным проектом. net, пытающимся подключиться к листам Google. Во время работы на моем локальном хосте все идет гладко, при публикации приложения через azure я не могу подключиться, получая эту ошибку:

Не удалось загрузить ресурс: сервер ответил со статусом 502 (Bad Gateway)

Вот мой код:

                UserCredential credential;
                using (var stream =
                    new FileStream("client_id_1.json", FileMode.Open, FileAccess.Read))
                { 
                    string credPath = "token.json";
                    credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
                    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets,
                        Scopes,
                        "user",
                        CancellationToken.None,
                        new FileDataStore(credPath, true)).Result;
                }
                Service = new SheetsService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = ApplicationName,
                });

Файл "client_id_1. json" содержит следующее:

{
  "web": {
    "client_id": "...",
    "project_id": "...",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "...",
    "redirect_uris": [ "https://{{mySiteHomePage}}" ],
    "javascript_origins": [ "https://{{mySite}}" ]
  }
}

Что-то мне не хватает? Как я могу исправить эту проблему?

1 Ответ

1 голос
/ 22 января 2020

GoogleWebAuthorizationBroker.AuthorizeAsyn c предназначен для установленных приложений, он открывает веб-браузер авторизации на текущем компьютере, поэтому он работает под управлением localhost. Если вы попытаетесь запустить хост, то попытаетесь открыть веб-браузер авторизации на сервере, который не будет работать.

Клиентская библиотека Google. net поддерживает asp. net авторизация ядра I Не знаю ни одного примера для этого. У меня не было времени написать что-то лично, возможно, вам повезет, копаясь в исходном коде, некоторые из модульных тестов могут помочь

...