Java 如何在com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver中设置自定义重定向URI

Java 如何在com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver中设置自定义重定向URI,java,google-api,google-oauth,google-sheets-api,google-oauth-java-client,Java,Google Api,Google Oauth,Google Sheets Api,Google Oauth Java Client,我正在开发一个与GoogleAPI(GoogleSheetsAPI)集成的java应用程序 我正试图遵循谷歌开发者网站提供的一个例子。链接: 他们使用LocalServerReceiver创建重定向uri,如下所示 LocalServerReceiver=new LocalServerReceiver.Builder().setPort(8888.build() 它在com.google.api.client.extensions.java6.auth.oauth2.AuthorizationC

我正在开发一个与GoogleAPI(GoogleSheetsAPI)集成的java应用程序

我正试图遵循谷歌开发者网站提供的一个例子。链接:

他们使用LocalServerReceiver创建重定向uri,如下所示

LocalServerReceiver=new LocalServerReceiver.Builder().setPort(8888.build()

它在com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp=>authorize()方法中使用,如下所示:

String redirectUri=receiver.getRedirectUri()

以下是receiver.getRedirectUri()生成uri的方式:

public String getRedirectUri() throws IOException {

    server = HttpServer.create(new InetSocketAddress(port != -1 ? port : findOpenPort()), 0);
    HttpContext context = server.createContext(callbackPath, new CallbackHandler());
    server.setExecutor(null);

    try {
      server.start();
      port = server.getAddress().getPort();
    } catch (Exception e) {
      Throwables.propagateIfPossible(e);
      throw new IOException(e);
    }
    return "http://" + this.getHost() + ":" + port + callbackPath;
}
由于我在localhost中运行此操作,getRedirectUri()将返回如下url:

http://localhost:8888/Callback

我想要的是提供一个自定义url,因为我正在使用ngrok公开我的本地主机

如果我访问“paradise.au.ngrok.io”url,它将指向我的本地主机

所以我需要将“paradise.au.ngrok.io”作为重定向url传递

有人能帮我做到这一点吗

谢谢。

您只需使用该方法并将重定向URI设置为您的ngrok URI即可