我與 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