首頁  >  問答  >  主體

無法啟用 Google 日曆雲端 API

我與 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 支援代理表示他們找不到任何文檔,並指示我前往此處。如果我的問題需要以不同的方式指定,請告知。

P粉648469285P粉648469285259 天前321

全部回覆(1)我來回復

  • P粉316423089

    P粉3164230892024-02-27 13:45:20

    您的程式碼正在嘗試使用服務帳戶。此範例使用 OAuth 客戶端密鑰。

    設定 OAuth 2.0

    回覆
    0
  • 取消回覆