驗證和授權是分別用於驗證身分和資源的機制。本文件概述 Chat 應用程式和 Chat API 要求的驗證和授權運作方式。
流程總覽
下圖說明 Google Chat 的驗證及授權詳細步驟:

設定 Google Cloud 專案、啟用 Chat API,並設定 Chat 應用程式:在開發期間,您會建立 Google Cloud 專案。在 Google Cloud 專案中,您可以啟用 Chat API、設定 Chat 應用程式,以及設定驗證方法。詳情請參閱「在 Google Workspace 中開發」和「建構即時通訊應用程式」。
呼叫 Chat API:當應用程式呼叫 Chat API 時,會將驗證憑證傳送至 Chat API。如果應用程式透過服務帳戶進行驗證,憑證就會做為應用程式程式碼的一部分傳送。如果應用程式需要透過尚未取得的使用者驗證來呼叫 Chat API,系統會提示使用者登入。
要求資源:應用程式使用您在設定驗證時指定的範圍要求存取權。
要求提供同意聲明:如果您的應用程式要以使用者身分進行驗證,Google 會顯示 OAuth 同意畫面,讓使用者決定是否要將要求的資料存取權授予應用程式。使用服務帳戶進行驗證時,不需要取得使用者同意。
傳送已核准的資源要求:如果使用者同意授權範圍,應用程式會將憑證和使用者核准的範圍組合為要求。系統會將要求傳送至 Google 授權伺服器,以取得存取權杖。
Google 傳回存取權杖:存取權杖包含已授予範圍的清單。如果傳回的範圍清單限制比要求範圍更嚴格,應用程式會關閉權杖限制的所有功能。
存取要求的資源:應用程式會使用 Google 的存取權杖叫用 Chat API 並存取 Chat API 資源。
取得更新權杖 (選用):如果應用程式必須在單一存取權杖的生命週期之外存取 Google Chat API,就可以取得更新權杖。詳情請參閱「使用 OAuth 2.0 存取 Google API」一文。
要求更多資源:如果您的應用程式需要更多存取權,系統會要求使用者授予新範圍,從而提出新的要求來取得存取權杖 (步驟 3 至 6)。
需要驗證的 Chat 應用程式
即時通訊應用程式可以根據使用者互動或以非同步方式傳送訊息。他們也可以代表使用者完成工作,例如建立 Chat 聊天室,或取得 Chat 聊天室中的使用者清單。
除非 Chat 應用程式在處理回應時呼叫 Chat API 或其他 Google API,否則使用者不需要進行驗證,就能回應使用者互動。
如要代表使用者傳送非同步訊息或代表使用者執行工作,Chat 應用程式會向 Chat API 發出符合 REST 樣式的要求,需要驗證和授權。
回覆使用者互動時,不需要經過驗證
Google Chat 應用程式不需要以使用者或 Chat 應用程式身分驗證,就能同步接收及回應互動事件。
每當使用者互動或叫用 Chat 應用程式時,Google Chat 應用程式都會收到互動事件,包括:
- 使用者傳送訊息給 Chat 應用程式。
- 使用者使用 @號提及 Chat 應用程式。
- 使用者叫用 Chat 應用程式的其中一個斜線指令。
下圖顯示 Chat 使用者和 Chat 應用程式之間的要求/回應序列:

- 使用者將訊息傳送至 Google Chat 中的 Chat 應用程式。
- Google Chat 會將訊息轉寄到應用程式。
- 應用程式會接收、處理訊息,並傳回 Google Chat 的回應。
- Google Chat 會為使用者或聊天室顯示回覆。
每個 Chat 應用程式互動事件都會重複此序列。
非同步郵件需要驗證
當 Chat 應用程式向 Chat API 發出要求時 (需要驗證和授權),就會出現非同步訊息。
呼叫 Chat API 後,Chat 應用程式就能代表使用者將訊息張貼到 Google Chat,或是完成工作與存取資料。舉例來說,偵測到伺服器服務中斷後,Chat 應用程式可以呼叫 Chat API 以執行下列操作:
- 建立專門用於調查及修正服務中斷問題的 Chat 聊天室。
- 在 Chat 聊天室中加入使用者。
- 在 Chat 聊天室中發布訊息,提供有關服務中斷的詳細資料。
下圖顯示 Chat 應用程式和 Chat 聊天室之間的非同步訊息序列:

- Chat 應用程式會使用
spaces.messages.create
方法呼叫 Chat API 來建立訊息,並在 HTTP 要求中加入使用者憑證。 - Google Chat 會使用服務帳戶或使用者憑證驗證 Chat 應用程式。
- Google Chat 會將應用程式訊息轉譯至指定的 Chat 聊天室。
Chat API 範圍
設定 OAuth 同意畫面並選擇範圍,定義要對使用者和應用程式審查者顯示的資訊,並註冊應用程式以便日後發布。
如要定義授予應用程式的存取層級,您必須找出並宣告授權範圍。授權範圍是 OAuth 2.0 URI 字串,內含 Google Workspace 應用程式名稱、其存取的資料類型以及存取層級。
非機密範圍
範圍代碼 | 說明 |
---|---|
https://www.googleapis.com/auth/chat.bot
|
可讓 Chat 應用程式查看即時通訊及傳送訊息。授權存取 Chat 應用程式的所有功能。 |
機密範圍
範圍代碼 | 說明 |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
在 Chat 中建立對話和聊天室,以及查看或更新中繼資料 (包括記錄設定)。 |
https://www.googleapis.com/auth/chat.spaces.create
|
在 Chat 中建立新對話。 |
https://www.googleapis.com/auth/chat.spaces.readonly
|
在 Chat 中查看即時通訊和聊天室。 |
https://www.googleapis.com/auth/chat.memberships
|
在 Chat 的對話中查看、新增及移除成員。 |
https://www.googleapis.com/auth/chat.memberships.app
|
在 Google Chat 的對話中新增及移除本應用程式。 |
https://www.googleapis.com/auth/chat.memberships.readonly
|
查看 Chat 對話中的成員。 |
https://www.googleapis.com/auth/chat.messages.create
|
在 Chat 中撰寫及傳送訊息。 |
https://www.googleapis.com/auth/chat.messages.reactions
|
在 Chat 中查看、新增及刪除訊息回應。 |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
在 Chat 中對訊息新增回應。 |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
在 Chat 中查看訊息回應。 |
受限制的範圍
範圍代碼 | 說明 |
---|---|
https://www.googleapis.com/auth/chat.delete
|
在 Chat 中刪除對話和聊天室,以及移除相關聯檔案的存取權。 |
https://www.googleapis.com/auth/chat.import
|
將聊天室、訊息和成員匯入 Chat。詳情請參閱「授權 Chat 專用應用程式匯入資料」一文 |
https://www.googleapis.com/auth/chat.messages
|
查看、撰寫、傳送、更新及刪除訊息,以及新增、查看及刪除訊息回應。 |
https://www.googleapis.com/auth/chat.messages.readonly
|
在 Chat 中查看訊息和回應。 |
上表中的範圍根據下列定義指出其機密程度:
非機密:這些範圍提供了最小的授權存取能力,且只需要基本的應用程式驗證。如要瞭解這項規定,請參閱「準備驗證的步驟」一文。
機密:這些範圍可讓應用程式在收到使用者授權後存取特定使用者的 Google 資料。您必須通過額外的應用程式驗證。如要瞭解這項規定,請參閱「要求機密範圍的應用程式適用的步驟」。
受限制:這些範圍可廣泛存取 Google 使用者資料,並要求您完成受限制範圍的驗證程序。如要進一步瞭解這項規定,請參閱「Google API 服務:使用者資料政策」和「特定 API 範圍的附加規定」。另請參閱「要求受限制範圍的應用程式」一節。
如果應用程式需要存取任何其他 Google API,您也可以新增這些範圍。如要進一步瞭解 Google API 範圍,請參閱使用 OAuth 2.0 存取 Google API。
如要進一步瞭解 Google Workspace API 的範圍,請參閱「設定 OAuth 同意畫面並選擇範圍」。
必要驗證類型
Chat 應用程式透過 Chat API 驗證及授權的方式有兩種:使用者憑證或服務帳戶。
透過使用者憑證授權,Chat 應用程式可以代表使用者存取使用者資料並完成動作。OAuth 範圍可指定授權資料和動作。不過,這些 Chat 應用程式無法公開發布。詳情請參閱「發布 Google Chat 應用程式」。
透過應用程式授權,即時通訊應用程式會以服務帳戶憑證的形式存取 API。應用程式授權一律使用 chat.bot
授權範圍。
如果您是網域管理員,可授予全網域授權委派權限,授權應用程式的服務帳戶存取您使用者資料,無需要求每位使用者表示同意。設定全網域委派功能後,即可使用您的服務帳戶進行 API 呼叫,以模擬使用者帳戶。雖然服務帳戶用於驗證,但全網域委派功能會模擬使用者,因此屬於「使用者驗證」。需要使用者驗證的任何功能都可以使用全網域委派。
在決定特定 API 要求要使用的憑證類型時,請注意部分 API 方法僅支援特定類型的憑證。如果 API 方法同時支援這兩種憑證,呼叫中使用的憑證類型會影響傳回的結果:
- 透過應用程式授權,這些方法只會傳回「應用程式」可存取的資源。
- 透過使用者授權,這些方法只會傳回「使用者」可在 Chat UI 中存取的資源。
舉例來說,使用應用程式授權呼叫 ListSpaces
方法時,系統會傳回應用程式所屬的聊天室清單。透過使用者授權呼叫 ListSpaces
會傳回使用者所屬聊天室清單。實務上,您的應用程式可能會在呼叫 Chat API 時,使用這兩種授權,視所需的功能而定。
非同步 Chat API 呼叫
下表列出 Chat API 方法及其支援的授權範圍:
方法 | 支援使用者驗證 | 支援應用程式驗證 | 支援的授權範圍 | |
---|---|---|---|---|
聊天室 | ||||
建立聊天室 | — |
使用「使用者驗證」功能:
|
||
設定聊天室 | — |
使用「使用者驗證」功能:
|
||
購買聊天室 |
使用「使用者驗證」功能:
|
|||
列出聊天室 |
使用「使用者驗證」功能:
|
|||
更新聊天室 | — |
使用「使用者驗證」功能:
|
||
刪除聊天室 | — |
使用「使用者驗證」功能:
|
||
完成聊天室的匯入程序 | — |
使用「使用者驗證」功能:
|
||
尋找即時訊息 |
使用「使用者驗證」功能:
|
|||
成員 | ||||
建立成員 | — |
使用「使用者驗證」功能:
|
||
加入會員 |
使用「使用者驗證」功能:
|
|||
名單成員 |
使用「使用者驗證」功能:
|
|||
刪除成員 | — |
使用「使用者驗證」功能:
|
||
訊息 | ||||
建立訊息 |
使用「使用者驗證」功能:
|
|||
接收訊息 |
使用「使用者驗證」功能:
|
|||
列出訊息 | — |
使用「使用者驗證」功能:
|
||
更新訊息 |
使用「使用者驗證」功能:
|
|||
刪除訊息 |
使用「使用者驗證」功能:
|
|||
反應 | ||||
建立反應 | — |
使用「使用者驗證」功能:
|
||
清單回應 | — |
使用「使用者驗證」功能:
|
||
刪除回應 | — |
使用「使用者驗證」功能:
|
||
媒體與附件 | ||||
以檔案附件形式上傳媒體 | — |
使用「使用者驗證」功能:
|
||
下載媒體 |
使用「使用者驗證」功能:
|
|||
取得郵件附件 | — |
使用「應用程式驗證」功能:
|
針對 Chat 應用程式互動事件
下表列出使用者與 Chat 應用程式互動的常見方式,以及是否需要進行驗證:
情境 | 不需驗證 | 支援使用者驗證 | 支援應用程式驗證 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
接收下列使用者的訊息: |
|
|||||||||||||||
回覆訊息: |
|
|||||||||||||||
傳送新訊息: |
|
相關主題
- 如需 Google Workspace 中的驗證和授權總覽,請參閱瞭解驗證和授權。
- 如需 Google Cloud 中的驗證和授權總覽,請參閱驗證總覽。
- 如要進一步瞭解服務帳戶,請參閱服務帳戶一文。
- 如要進一步瞭解 Google API 如何運用 OAuth 2.0,請參閱「使用 OAuth 2.0 存取 Google API」。
- 使用使用者憑證或服務帳戶設定驗證和授權作業。