从java读取Google工作表时Google api重定向uri问题
我正在使用OAuth2GoogleDrive API从Java中的google工作表中读取数据。 我在本地机器上有一个工作样本。但当我将其部署到远程服务器上时,在进行身份验证时,API返回一个URL,该URL将在浏览器中打开。 URL如下所示:从java读取Google工作表时Google api重定向uri问题,java,google-api,google-drive-api,google-oauth,google-api-java-client,Java,Google Api,Google Drive Api,Google Oauth,Google Api Java Client,我正在使用OAuth2GoogleDrive API从Java中的google工作表中读取数据。 我在本地机器上有一个工作样本。但当我将其部署到远程服务器上时,在进行身份验证时,API返回一个URL,该URL将在浏览器中打开。 URL如下所示: https://accounts.google.com/o/oauth2/auth?access_type=online&approval_prompt=auto&client_id=my.client.id&redirect_u
https://accounts.google.com/o/oauth2/auth?access_type=online&approval_prompt=auto&client_id=my.client.id&redirect_uri=http://**localhost:58305**/Callback&response_type=code&scope=https://www.googleapis.com/auth/drive
显然,这个URL不会在远程服务器上打开,因为没有本地主机
生成oauth客户端id时我的google开发者控制台配置:
Error: redirect_uri_mismatch
The redirect URI in the request, http://localhost:59363/Callback, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/my.client.id?project=my.project.id to update the authorized redirect URIs.
我尝试了多个重定向URI选项。但它给出了同样的错误
您需要将重定向uri设置为java代码中google控制台中提供的uri 看看 您可以构建重定向url。目前您正在以localhost:58305/Callback的形式发送
如果您使用了错误的API凭据类型,请更新它,它将正常工作
对于您的项目,请转到:并选择OAUTH2凭据(客户端ID类型:OTHER)。我刚刚发布了一个关于此主题的问题:“编写Servlet以读取/写入Google Sheets数据”。你介意和我聊聊你是如何实现你的解决方案的吗?我在使用GoogleDriveAPI时也面临同样的问题。在应用程序类型为“其他”的本地主机上一切正常。在iis上发布时,会显示“错误:重定向\u uri\u不匹配”。使用应用程序类型时,web应用程序会显示“错误:重定向\u uri\u不匹配”也在本地。尝试了许多重定向uri选项,但仍然没有成功。正在搜索上周的解决方案。有人能告诉我应该提供什么重定向uri吗?因此,我使用了“其他”作为我的url。我使用了“其他”,但我仍然面临上述相同的问题。
@Override
protected String getRedirectUri(HttpServletRequest req) throws ServletException, IOException {
GenericUrl url = new GenericUrl(req.getRequestURL().toString());
url.setRawPath("/oauth2callback");
return url.build();
}