Google_AuthException:invalid_grant

时间:2013-04-28 10:44:17

标签: google-mirror-api google-glass

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

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

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

知道我做错了什么?

提前致谢!

3 个答案:

答案 0 :(得分: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 console。此链接将引导您进入正确的面板(服务),但请仔细检查您是否在正确的项目中。
  3. 向下滚动,您会看到页面的一部分如下所示:enter image description here。点击“修改设置...”。
  4. 这会触发一个弹出窗口,您可以在其中输入OAuth重定向URI。将重定向URI添加到顶部文本区域。确保将每个URI放在自己的行上。enter image description here
  5. 重新加载PHP快速入门的页面,一切都应该有效。
  6. 如果您仍然遇到问题,请在页面上分享完整的错误消息以及config.php中基本网址的值。

答案 1 :(得分:0)

如果您从Google收到invalid_grant错误:请不要使用Google开发者控制台中的client ID作为代码中client ID的值,请尝试使用{来自开发者控制台的{1}}值。这实际上是他们所期望的。因此,要确认 - email address的值应该是开发人员控制台结束Client ID的值

答案 2 :(得分:0)

最近尝试连接到DialogFlow Google Cloud Project时,在Windows PS dotnet环境中出现了类似的问题,它似乎是间歇性故障,但在Windows PowerShell中却是全局$env:GOOGLE_APPLICATION_CREDENTIALS,它指向密钥文件集在GCP控制台中重新生成密钥之前和之后的首次设置访问GCloud的时间

在生成新的密钥文件并使用$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调用进行了正确的身份验证,那