URI перенаправления API Google кроме localhost: как сделать его доменом сервера - PullRequest
0 голосов
/ 13 февраля 2019

Я пытался настроить приложение, взаимодействующее с одним из API Google.Когда я развертываю его на своем сервере Linux (только в оболочке), он просит меня перейти и «Пожалуйста, откройте следующий адрес в вашем браузере» со значением URI перенаправления localhost:some_port.

Я не могу получить к нему доступ со своего компьютера с Linux и не могу открыть его в другом браузере на основе пользовательского интерфейса, поскольку redirect_uri ВСЕГДА основан на локальном хосте.

Я добавил свой публичный домен сервера всписок URI перенаправления, но он всегда генерируется с адресом localhost.

Как я могу получить токен с экрана согласия, так как он всегда перенаправляет меня на localhost на моем сервере linux?

Код

Код для создания соединения (все нормально на localhost, поэтому здесь нет ошибок):

InputStream in = SearcherApplication.class.getResourceAsStream("/client_secret.json");
            GoogleClientSecrets clientSecrets =
                    GoogleClientSecrets.load(jsonFactory, new InputStreamReader(in));
            GoogleAuthorizationCodeFlow flow =
                    new GoogleAuthorizationCodeFlow.Builder(
                            httpTransport, jsonFactory, clientSecrets, Collections.singleton(YOUTUBE_READONLY))
                            .setDataStoreFactory(dataStoreFactory)
                            .setAccessType("offline")
                            .build();
            return new AuthorizationCodeInstalledApp(
                    flow, new LocalServerReceiver()).authorize("user");

1 Ответ

0 голосов
/ 14 февраля 2019

Нашли место для этого варианта.Вместо new LocalServerReceiver() установите следующий код: new LocalServerReceiver.Builder() .setHost("my.awesome.server") .setPort(8080) .setCallbackPath("/Callback") .build()

...