我與 Google Workspace 客戶支持人員進行了交談,他們未能找到有關此問題的適當檔案。他們把我帶到了這里。
很簡單,我正在嘗試啟用 Google Cloud API 以根據此檔案在用戶的日歷中創建一個事件(并希望向其中添加一個 Google Meet URL):https ://developers.google.com/calendar/api /指南/創建事件。
我正在關注快速入門 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 支持代理的驗證。我下載并重命名了該檔案并將其放在腳本根目錄中(盡管路徑也未在不完整的檔案中指定,但已由 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@massive-clone-{REDACTED}.iam.gserviceaccount.com"
}
盡管快速入門指南似乎在故障排除部分解決了此問題,但該建議似乎并不適用,因為步驟 1 中沒有“按鈕”。從故障排除部分:
未捕獲的 InvalidArgumentException:缺少所需的重定向 URI
當使用的 credentials.json 檔案包含錯誤型別的客戶端 ID 時,會發生此錯誤。此代碼需要其他型別的 OAuth 客戶端 ID,在使用步驟 1 中的按鈕時將為您創建。如果創建您自己的客戶端 ID,請確保您選擇正確的型別。
誰能幫助我了解如何獲取適當的credentials.json檔案?我不確定這個程序應該如何進行,但 Google Workspace 支持代理說他們找不到任何檔案并指示我到這里。如果我的問題需要以不同的方式指定,請告知。
uj5u.com熱心網友回復:
您的代碼正在嘗試使用服務帳戶。該示例使用使用 OAuth 客戶端機密。
設定 OAuth 2.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480731.html
標籤:php api 谷歌云平台 谷歌认证 谷歌日历 API
