1

我有2個應用程序,舊應用程序使用Oauth2訪問Google AnalyticsAPI。所有當前用戶都已授予訪問我的域名的電子郵件的權限。如何將服務帳戶密鑰憑證的client_email更改爲我自己的電子郵件?

第二個應用程序使用具有服務帳戶身份驗證的憑據。 問題是,服務帳戶鍵的電子郵件是使用不同的域:

「client_email」:「[email protected]」,

我需要它使用我的域中已有來自客戶端的權限的舊電子郵件。

我該怎麼做,我已經下載了服務帳號密鑰的json文件。

回答

1

Oauth2和服務帳戶之間存在差異。

讓我們從使用Oauth2的舊應用程序開始。當用戶開始使用應用程序時,會顯示身份驗證表單,要求他們授予應用程序X訪問其數據的權限。假設他們接受它,應用程序X現在可以讀取數據。應用程序X會獲得一個Refresh令牌,可用於在以後訪問數據。

在後臺,Application X的開發人員在Google Developer Console上註冊了他們的應用程序,並獲得了客戶端ID和客戶端密鑰。當用戶嚮應用程序進行身份驗證時,使用客戶端ID和客戶端密鑰創建Refresh令牌。您不能採用不同的客戶端ID和客戶端密鑰,並將其與來自另一個不可互換的應用程序的刷新令牌一起使用。

服務帳戶是不同的,因爲它們是預先授權的。如果您使用該服務帳戶的電子郵件地址,並將其作爲用戶添加到Google分析網站管理員部分。服務帳戶將有權訪問與其他用戶一樣的信息。

澄清/答案。

  1. 您不能選擇這些由Google生成的服務帳戶電子郵件地址。
  2. 您無法使用服務帳戶訪問通過Oauth2授予​​應用程序的數據。它們不可互換。
  3. 如果您可以使用Oauth2訪問用戶數據,則應使用刷新令牌訪問其數據,而不需要服務帳戶。
相關問題