我与 Google Workspace 客户支持人员进行了交谈,但他们未能找到有关此问题的适当文档。他们指引我来到这里。
很简单,我正在尝试启用 Google Cloud API 按照以下文档在用户日历中创建活动(并希望向其中添加 Google Meet URL):https://developers.google.com/日历/api/guides/create-events。
我正在遵循快速入门 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 {主要} 抛出在 /path/to/vendor/Google/google/apiclient/src/Client.php 第 984 行
我已按照此处的说明创建了一个服务帐户:
虽然说明中没有包含创建服务帐号和生成 JSON 密钥的步骤,但我在网上找到了该解决方案,并且已得到 Google Workspace 支持代理的验证。我下载并重命名了该文件,并将其放入脚本根目录中(尽管不完整的文档中也没有指定路径,但这已由 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): Google\Auth\OAuth2->buildFullAuthorizationUri(Array) #1 /path/to/app_root/quickstart.php(38): Google\Client->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
文件吗?我不确定这个过程应该如何进行,但 Google Workspace 支持代理表示他们找不到任何文档,并指示我前往此处。如果我的问题需要以不同的方式指定,请告知。
您的代码正在尝试使用服务帐户。该示例使用 OAuth 客户端密钥。
设置 OAuth 2.0