首页 > 解决方案 > localhost 以外的 Google API 重定向 URI:如何使其成为服务器域

问题描述

我一直在尝试设置一个与其中一个 Google API 对话的应用程序。当我将它部署到我的 linux 服务器(仅限 shell)时,它确实要求我去“请在浏览器中打开以下地址”,重定向 URI 值为localhost:some_port.

我无法从我的 linux 机器访问它,也无法在其他一些基于 UI 的浏览器上打开它,因为 redirect_uri 总是基于 localhost。

我已将我的服务器公共域添加到重定向 URI 列表中,但它仍然始终使用 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");

标签: javagoogle-apigoogle-cloud-platformgoogle-oauthdevops

解决方案


找到该选项的位置。而不是new LocalServerReceiver()设置以下代码: new LocalServerReceiver.Builder() .setHost("my.awesome.server") .setPort(8080) .setCallbackPath("/Callback") .build()


推荐阅读