5

我正在尝试使用我的值设置 config.php,但我收到了这个致命错误:

致命错误:未捕获的异常“Google_AuthException”带有消息“获取 OAuth2 访问令牌时出错,消息:'invalid_grant'。

我输入了客户端 ID、秘密、简单 API 密钥、位置和 sqlite 数据库,如文档所述: https ://developers.google.com/glass/quickstart/php

知道我做错了什么吗?

提前致谢!

4

3 回答 3

2

当您托管 Glassware 的 URL 未在 API 控制台上列为有效的 OAuth 2.0 重定向 URI 时,就会发生这种情况。请按照以下步骤解决它。

  1. 首先,确定您的 OAuth 2.0 重定向 URI。这是 OAuth 舞蹈结束时流量流向的地方。正确的值取决于您在哪里运行 php 快速启动。如果您在本地 Web 服务器上运行它,它可能是http://localhost/mirror-quickstart-php/oauth2callback.php. 如果您在 example.com 上运行它,它可能是https://example.com/oauth2callback.php.
  2. 转到API 控制台。此链接将引导您到正确的面板(服务),但请仔细检查您是否在正确的项目上。
  3. 向下滚动,您应该会看到如下所示的页面部分:在此处输入图像描述。单击“编辑设置...”。
  4. 这会触发一个弹出窗口,您可以在其中输入 OAuth 重定向 URI。将您的重定向 URI 添加到顶部文本区域。确保将每个 URI 放在自己的行中。在此处输入图像描述
  5. 重新加载 PHP 快速入门页面,一切正常。

如果您仍有问题,请在页面上分享完整的错误消息以及您在config.php.

于 2013-04-28T19:00:00.953 回答
0

如果您收到invalid_grant来自 Google 的错误:不要使用client ID来自 google 开发者控制台的值作为client ID代码中的值,而是尝试使用email address来自开发者控制台的值。这实际上是他们所期望的。因此,要确认 - 的值Client ID应该是开发者控制台结尾的值@developer.gserviceaccount.com

于 2015-06-07T15:51:28.413 回答
0

最近尝试连接到 DialogFlow Google Cloud Project 时,在 Windows PS dotnet 环境中遇到了类似的问题,这似乎是间歇性故障,但事实证明,$env:GOOGLE_APPLICATION_CREDENTIALS在 Windows 中它是全局性的并且由于在 GCP Console 中重新生成了密钥

在生成新的密钥文件并使用新生成$env:GOOGLE_APPLICATION_CREDENTIALS="[Path_To_JSON_Key_File]"的密钥文件设置它后,问题就消失了,但只要窗口打开,修复就会持续,然后在$env:GOOGLE_APPLICATION_CREDENTIALS新打开的 PS 窗口上运行一段时间后发现它仍然指向旧的关键文件!

将系统环境变量设置GOOGLE_APPLICATION_CREDENTIALS为固定值[Path_To_JSON_New_Key_File],所有新打开的 PS 窗口都具有正确的密钥文件并使用服务帐户正确验证,之后使用 .Net Google Cloud API 调用

于 2020-05-21T10:49:38.410 回答