我們構建了一個嘗試使用服務帳戶訪問Google Calendar API的應用程序。我們自己管理應用程序,但我們嘗試訪問的日曆位於單獨的GSuite帳戶中。我們讓GSuite管理員按照here的步驟允許基於客戶端ID和「https://www.googleapis.com/auth/calendar.readonly」身份驗證範圍訪問我們的應用。Google Calendar API FreeBusy使用服務帳戶訪問
現在,當使用服務帳戶嘗試訪問用戶日曆數據時,我對如何正確格式化請求感到困惑。具體來說,如果我不包含「sub」參數,請求的作用就在於我獲得了一個令牌,並且我可以繼續進行後續請求以訪問日曆。但是,在隨後的請求中,我在用戶日曆中返回了錯誤,指示未找到,即我沒有訪問權限。下面是要求:
String jwtClaimset = '{'+
'"iss":"[email protected]",'+
'"sub":"[email protected]",'+
'"scope":"https://www.googleapis.com/auth/calendar.readonly",'+
'"aud":"https://www.googleapis.com/oauth2/v4/token",'+
'"exp":'+expTime+','+
'"iat":'+requestTime+
'}';
然而,然後如果我包括來自GSuite特定電子郵件/用戶名帳戶「冒充」,我不能夠在所有要求的道理,我提出與下面錯誤:
"error_description": "Client is unauthorized to retrieve access tokens using this method."
所以我的問題是,我需要的子參數來訪問任何用戶的日曆中GSuite如果這樣做,你知道爲什麼被呈現的錯誤?
嗨,喬治。我正在嘗試在NodeJs中編寫一些可以列出用戶事件並在其日曆中創建事件的API。我們組織的郵件帳戶和日曆在gsuite上。我已經嘗試了基於JWT的身份驗證的nodejs的googleapis包,但未顯示主要用戶的任何事件。不確定服務帳戶憑據如何模擬其他用戶帳戶。你能指導我完成這個過程嗎? –