java - 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");
解决方案
找到该选项的位置。而不是new LocalServerReceiver()
设置以下代码:
new LocalServerReceiver.Builder()
.setHost("my.awesome.server")
.setPort(8080)
.setCallbackPath("/Callback")
.build()
推荐阅读
- makefile - Yocto 配方 Busybox_1.23.2.bb 在 do_compile 失败
- javascript - 在网站上实现多语言支持的最佳方法
- rest - REST API 创建组 TFS 2018 更新 3
- java - 在 java 中使用 rsa 时发生解密错误。
- javascript - 从整个 webpack 项目中创建一个实例
- ios - 我们是否应该在 Xamarin.iOS 中调用 NSDate 的 dispose 方法
- javafx - 标签未在 javafx 中显示
- android - mapbox 在缩放级别 8 时未显示道路。*
- java - 将字符串修改应用于数组/列表
- angular - Angular 6 表单验证