无法启用Google日历云API



我与Google Workspace客户支持进行了交谈,他们未能找到有关此问题的适当文档。他们把我带到这里。

简单地说,我正在尝试启用Google Cloud API,以便根据以下文档在用户日历中创建一个事件(并希望向其中添加Google Meet URL):https://developers.google.com/calendar/api/guides/create-events.

我遵循Quickstart PHP代码示例,该示例首先指示通过composer安装SDK,并在PHP中授权Google Cloud API。该链接位于此处:https://developers.google.com/calendar/api/quickstart/php.

该页面提供的脚本(步骤2)最初失败(在步骤3期间),并出现以下错误:

PHP Fatal error:  Uncaught InvalidArgumentException: file "credentials.json" does not exist in /path/to/vendor/Google/google/apiclient/src/Client.php:984

堆栈跟踪:#0/path/to/app_root/quickstart.php(17):Google\Client->setAuthConfig('credentials.jso…')#1/path/to/app_root/quickstart.php(63):getClient()#2{main}在第984行的/path/to/vendor/Google/Google/apiclient/src/Client.php中抛出

我已经按照这里的说明创建了一个服务帐户:

虽然说明中没有包括创建服务帐户和生成JSON密钥的步骤,但我在网上找到了该解决方案,并由Google Workspace支持代理进行了验证。我下载并重命名了该文件,并将其放在脚本根目录中(尽管不完整的文档中也没有指定路径,但谷歌工作区支持代理对此进行了验证)。我再次运行脚本并收到此错误:

PHP Fatal error:  Uncaught InvalidArgumentException: missing the required redirect URI in /path/to/vendor/Google/google/auth/src/OAuth2.php:694
Stack trace:
#0 /path/to/vendor/Google/google/apiclient/src/Client.php(406): GoogleAuthOAuth2->buildFullAuthorizationUri(Array)
#1 /path/to/app_root/quickstart.php(38): GoogleClient->createAuthUrl()
#2 /path/to/app_root/quickstart.php(63): getClient()
#3 {main}
thrown in /path/to/vendor/Google/google/auth/src/OAuth2.php on line 694

我尝试创建一个OAuth重定向URI并重新生成JSON密钥,但是,也发生了同样的错误。以下是我从服务帐户KEYS部分下载的身份验证JSON文件,其中包含经过编辑的任何帐户特定信息:

{
"type": "service_account",
"project_id": "massive-clone-{REDACTED}",
"private_key_id": "{REDACTED}",
"private_key": "-----BEGIN PRIVATE KEY-----{REDACTED}n-----END PRIVATE KEY-----n",
"client_email": "calendar-api@massive-clone-{REDACTED}.iam.gserviceaccount.com",
"client_id": "{REDACTED}",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/calendar-api%40massive-clone-{REDACTED}.iam.gserviceaccount.com"
}

尽管快速启动指南似乎在故障排除部分解决了这个问题,但该建议似乎不适用,因为没有";按钮";在步骤1中。来自故障排除部分:

未捕获的InvalidArgumentException:缺少所需的重定向URI

当使用的credentials.json文件包含错误类型的客户端ID。此代码需要的OAuth客户端ID键入"其他",使用中的按钮时将为您创建步骤1。如果创建自己的客户端ID,请确保选择正确的类型。

有人能帮助我了解如何获得适当的credentials.json文件吗?我不确定这个过程应该如何进行,但谷歌工作区支持代理表示,他们找不到任何文档,并指示我到这里。如果我的问题需要以不同的方式说明,请提出建议。

您的代码正在尝试使用服务帐户。该示例使用use OAuth客户端机密。

设置OAuth 2.0

最新更新