【发布时间】:2014-08-23 17:18:13
【问题描述】:
我是使用 Google API 的新手。我按照步骤使用 Google 客户端库在 Eclipse 中设置 Google 日历示例代码。我使用 cmd 命令 - mvn appengine:update 将代码部署到应用引擎(当尝试通过 eclipse 部署时,它给了我一个错误,说该项目不是 App Engine 项目)。通过命令行部署有效,我可以启动我的 Web 应用程序。
突然,在几次 API 请求调用后,开始出现无效凭据错误:
错误:401
域:全球
位置:授权
位置类型:标题
消息:凭据无效
原因:认证错误
我搜索了这个错误,发现如果您的身份验证令牌无效或过期,可能会发生此错误。我不确定我需要做什么才能获得新的身份验证令牌。就我而言,有一个包含客户端机密的 client_secrets.json 文件。我没有在代码中的任何地方放置/保存或使用身份验证令牌。以下是我第一次部署代码时的记忆:
- 在我使用命令行进行部署时,有人要求我将其粘贴到 cmd 上。之后我可以启动我的应用程序。
- 之后,每当我部署代码并启动应用程序时,都没有授权(第一次发生),随后我可以使用应用程序和 API。
- 突然我开始收到无效凭据错误。
我使用的是从开发人员控制台生成的 client_secrets.json,我没有在代码的任何地方提供身份验证令牌,也没有保存它。我读到可以使用刷新令牌,并且可以避免身份验证令牌过期。
目前,问题是我收到无效凭据错误,我认为这是因为身份验证令牌过期。我不知道这种情况下的解决方案。它是 Google 提供的示例代码,我相信它会自动处理 Oauth 授权(与我们以编程方式调用 Oauth url、获取令牌、将其存储在某处并提供给我们后续请求的情况不同)。我需要对示例代码做什么才能解决这个问题并且以后不会遇到错误?
此外,应用程序在本地运行良好,但在部署到云时出现授权问题。谢谢。
【问题讨论】:
-
你能链接到谷歌的代码示例吗?
-
示例代码位于:code.google.com/p/google-api-java-client.samplesgoogle-api-java-client-samples..我基本上遵循了 1)youtube.com/watch?v=tVIIgcIqoPw 的 YouTube 视频和 2)samples.google-api-java-client.googlecode.com/hg/… 的说明结帐并设置示例代码。
-
如果您需要更多信息,请告诉我。谢谢。
标签: google-app-engine oauth google-api google-calendar-api google-api-java-client