问题标签 [google-oauth-java-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
298 浏览

google-apps-marketplace - 使用 Google Apps Marketplace 服务帐户连接到 Gmail IMAP 和其他服务的正确方法

我们的 Marketplace 应用程序的一项功能是通过 IMAP 访问用户的 Gmail 帐户。我们在 java-gmail-imap 项目中使用了 google-api-java-client 和 google-oauth-java-client 库和类似于此示例的代码,如下所示:

然后,我们使用基于https://code.google.com/p/google-mail-oauth2-tools示例的代码来建立 IMAP 连接,例如

大多数情况下,这似乎可以正常工作,但是我们看到,对于少量但大量的请求,对 Google 的调用refreshToken()失败并出现 HTTP 500 错误和 HTML 响应,其中 JSON 通常会返回,例如

Google 的一位开发人员倡导者告知我们,服务帐户不支持刷新令牌,我们应该使用本示例中的方法。

但是,似乎没有调用refreshTokenthenaccessToken不会填充在凭证对象上,然后这会导致NullPointerException我们调用OAuth2Authenticator.connectToImap

从源代码来看,GoogleCredential它似乎executeRefreshToken()被覆盖以处理服务帐户,即它不是执行刷新,而是简单地请求一个新令牌,然后这段代码Credential处理填充访问令牌:

我们不确定是否需要将调用包含refreshToken()在重试循环中以解决间歇性 500 错误,或者是否需要对代码进行其他更改以遵循针对此场景的推荐方法。

任何人都可以建议吗?

0 投票
1 回答
1329 浏览

java - Google Analytics Java API“401 需要未经授权的登录”错误

我尝试使用 java 库和服务帐户从 GA 获取数据。我已经完成了所有必需的设置:在云控制台中激活 Analytics API,生成服务帐户,获取私钥,在 GA 用户管理中添加生成的具有读取权限的开发人员电子邮件。

使用我的本地实现,这可以正常工作。但是当我尝试从服务器端运行相同的代码时,我收到状态“需要 401 未经授权的登录”。两种实现都使用 Java 5 运行时,Google API 服务 Java 库版本 1.17.0 rev75。

带有凭据定义的代码片段:

Analytics 对象和查询构建器:

我已经添加了 httpLogger 来比较流量。我看到在本地和服务器运行的情况下,授权流程是相同的,获取访问令牌没有问题。

通过本地运行,我收到状态为 200 的响应:

但是随着服务器运行,我收到了状态为 401 的响应:

有人可以帮助我吗?我真的检查了我所知道的一切,但没有运气。

编辑 是否有人知道将域范围内的授权委托给服务帐户是否与 Google Analytics API 相关?

最好的问候,谢尔盖。

0 投票
2 回答
7441 浏览

java - 使用 Oauth2 从 Google 请求访问令牌时出现错误 401

我正在编写一个需要访问 Google 任务 API 的 Java 客户端应用程序。我正在按照页面https://developers.google.com/accounts/docs/OAuth2InstalledApp的说明进行操作,并且我已经设法获得了授权码。但是,当我尝试获取访问令牌时,我不断收到错误 400“错误请求”。

我正在使用 Firefox 的海报插件进行测试。我向https://accounts.google.com/o/oauth2/token发送了一个帖子请求,内容如下:

关于我可能做错了什么的任何建议?

0 投票
1 回答
1442 浏览

oauth - Google-oauth:无权请求范围

我在我的网络应用程序中实现了 Google oauth1,大约两个月前它运行良好,因为我正忙于其他一些事情,今天我必须测试该应用程序,但出现以下错误

错误:invalid_request 未授权请求范围:[https://www.googleapis.com/auth/plus.login]

请求详情 oauth_token=4/TcuWLYAunz3MeOac23f0i4AZ6tQx

谷歌方面的oauth登录过程有什么变化吗?对此问题的任何帮助表示赞赏。

我正在使用的范围

https://www.googleapis.com/auth/userinfo.email

https://docs.google.com/feeds/

https://www.googleapis.com/auth/plus.login

https://www.google.com/calendar/feeds/

0 投票
1 回答
171 浏览

dojo - 加载 google oauth 客户端后在 dojo 中回调

为了加载 google oauth 客户端库,我们必须使用这个脚本标签

加载 client.js 后将调用 load 方法。

我在我的应用程序中使用 dojo

我如何使用 dojo 加载它?

我尝试过使用 dojo/request/script 但回调方法由无法修改的 dojo 采用

任何帮助我怎么能做到这一点,

谢谢

0 投票
1 回答
713 浏览

google-chrome-extension - 从 chrome 扩展实现 Google+ 一次性代码流身份验证

我正在尝试使用此处所述的一次性代码流将 Google+ 登录选项作为 chrome 扩展的一部分来实现。

使用 javascript Google API 包发出请求时,会打开一个弹出窗口,并显示“origin_mismatch”错误。这显然是因为我需要将我的来源添加到 Google API 控制台上的相关客户端 ID。

我的起源是:chrome-extension://<my extension id>但是,当尝试在 API 控制台上添加它时,我收到一条错误消息"Invalid URI: chrome-extension://...",这可能意味着不支持此方案。

知道我能做什么吗?

0 投票
0 回答
186 浏览

oauth - 谷歌一次性代码流oauth登录在windows phone IE中不起作用

我为我的网站使用谷歌一次性代码流oauth登录,这里描述,现在我的问题是链接工作正常,谷歌正在询问我的用户名和密码,然后它只是在那儿徘徊没有响应,也没有重定向到我的网站只在 Windows Phone IE 中。

我的猜测是它在同一个窗口中打开,所以它无法在我的站点中找到回调函数,我现在不知道如何解决这个问题。任何人都请帮我解决这个问题。

先感谢您。

0 投票
1 回答
493 浏览

google-oauth - google-oauth 日历返回 401 错误

我在google calendar api java sample上尝试了calendar-appengine-sample,当我使用client_secrets.json在localhost中运行时,它总是给我我的日历列表,但是当我使用client_secrets.json在google app引擎上运行时,它给了我以下错误信息:

在它使用相同的 client_secrets.json 之前,它突然不起作用。有人会这么好心地告诉我如何解决这个问题吗?

谢谢。

0 投票
3 回答
706 浏览

google-oauth - 从 OAuth1 3L 迁移到 OAuth2:

我正在尝试将现有的 OAuth1.0 3L 令牌迁移到 Web 应用程序的 OAuth2.0。我正在按照https://developers.google.com/accounts/docs/OAuth_ref上的说明进行操作, 尽管我尽了最大努力,但我仍然收到以下回复:“授权标头无效。”

为了创建 Authorization 标头,我使用了 Google 的 Java 客户端库 1.0,我在应用程序中使用它来与 google 日历对话。我正在使用访问令牌进行测试。可以正常工作的令牌秘密、消费者密钥和消费者秘密(即我可以使用这些凭据来调用 Google 日历等)。

这是我使用的代码:

这是 HttpClient 生成的线路跟踪:

其中 12345 和 ABCDE 显然是真正的 OAuth2 应用程序凭据的占位符。

我已经两次和三次检查 OAuthParameters 中设置的所有参数是否与当前使用 OAuth1 工作的普通代码相同(即使使用分步调试器来验证 OAuthHmacSha1Signer 计算签名时的值.getSignature())。

我查看了当前使用 OAuth1 的 Google 客户端 API 发送的 HTTP 请求中的 Authorization 标头(并且工作正常),显然除了签名、随机数和时间戳之外,它们看起来与此迁移调用发送的相同。

我什至尝试了一个测试迁移请求,但失败了,然后使用调试器运行旧代码并注入迁移调用使用的方法、URL、nonce 和时间戳,并且旧代码计算的签名是相同的,给定相同的参数。

为什么 Authorization 标头仍被报告为无效的任何线索?

0 投票
5 回答
163445 浏览

java - Google OAUTH:请求中的重定向 URI 与注册的重定向 URI 不匹配

我正在尝试从我的基于 Java 的网络应用程序上传到 YouTube,我花了几天时间来了解问题出在哪里以及问题出在哪里,但我无法得到它,现在我正把头发从头上扯下来。

我在 Google Console 中注册了我的网络应用程序,因此我得到了一对客户端 ID 和密钥,并且可以使用我的配置下载 JSON 类型的文件。

所以这里是配置:

我怎么可能从 Google 获得默认 URL?

The redirect URI in the request: http://localhost:8080/Callback did not match a registered redirect URI

它总是给我默认的http://localhost:8080/CallbackURL 而不是我的。

IDE 控制台向我显示:

Please open the following address in your browser: https://accounts.google.com/o/oauth2/auth?client_id=***&redirect_uri=http://localhost:8080/Callback&response_type=code&scope=https://www.googleapis.com/auth/youtube.upload Attempting to open that address in the default browser now...

我正在使用最新版本的依赖项: google-api-services-youtube v3-rev99-1.17.0-rcgoogle-api-services-youtubeAnalytics v1-rev35-1.17.0-rc