本頁說明 Google Chat 應用程式和開發人員如何識別及指定 Chat 使用者。
如要執行下列任何操作,Chat 擴充應用程式或開發人員必須指定使用者:
- 建立@ 提及使用者的訊息。
- 邀請或新增使用者至現有聊天室,或新增使用者至新聊天室。
- 尋找即時訊息:Chat 應用程式與特定使用者之間的訊息,或兩位使用者之間的訊息。
- 取得使用者在聊天室中的成員詳細資料。
- 傳送私人訊息給使用者。
- 使用 Google Workspace Events API 訂閱使用者,即可取得成員資格異動相關事件。
Chat 如何識別使用者
Google Chat API 會為使用 Chat 的每位使用者和應用程式產生User資源。User 資源包含下列欄位:
name:資源名稱,格式為users/{user},其中{user}代表穩定且不重複的 ID。您可以將users/app設為 Chat 應用程式的別名。displayName:僅限輸出。使用者的顯示名稱。avatarUrl:僅限輸出。使用者的顯示圖片網址。email:僅限輸出。使用者的電子郵件地址。domainId:使用者 Google Workspace 網域的專屬 ID。type:使用者類型。指出使用者是 Chat 應用程式 (BOT) 還是真人 (HUMAN)。isAnonymous:僅限輸出。如果為true,則表示使用者已遭刪除或無法查看個人資料。
使用者個人資料詳細資料和瀏覽權限規則
使用使用者驗證呼叫 Messages 和 Memberships API 時,Google Chat API 會在 User 資源中填入個人資料詳細資訊。API 會為內部使用者 (Google Workspace 機構中的使用者) 和外部使用者 (外部機構或個人 Google 帳戶中的使用者) 填入 displayName、email 和 avatarUrl。
API 填入使用者設定檔的範例包括下列位置:
Message的sender。- 訊息
annotations中的使用者,例如使用者@mentions。 Membership資源內的member。
隱私權和顯示規則
為保護使用者隱私,Google Chat API 會套用特定顯示規則,判斷是否要填入使用者個人資料詳細資訊:
- 已填寫的個人資料:如果使用者已接受空間邀請 (是空間成員),或與呼叫使用者有先前的親和性 (例如直接訊息互動記錄),API 就會填寫個人資料詳細資料 (
displayName、email和avatarUrl存在,且isAnonymous為false)。 - 匿名設定檔:如果使用者在空間中遭到提及,但並非成員,且與呼叫使用者沒有先前的親和力,系統會維持匿名設定檔。如果是匿名使用者,
isAnonymous會是true,且會省略displayName、email和avatarUrl等詳細資料。不過,如果是透過應用程式驗證發出的 API 要求,displayName欄位一律會填入資料。
以下 JSON 範例顯示 User 資源,其中包含 API 回應或互動事件中傳回的已填入個人資料詳細資料:
{
"name": "users/12345678901234567890",
"displayName": "Sasha",
"domainId": "123abc",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "sasha@example.com",
"type": "HUMAN",
"isAnonymous": false
}
以下 JSON 範例顯示匿名 User 資源,其中使用者設定檔詳細資料不會顯示給呼叫端:
{
"name": "users/10987654321098765432",
"type": "HUMAN",
"isAnonymous": true
}
在 Google Chat API 的呼叫中指定使用者
如要指定使用者,請為 {user} 值使用下列值:
如果使用者屬於 Google Workspace 機構,請採取下列其中一種做法:
- Chat API 中的
nameUser資源,例如users/123456789。 {person_id}People API 中Person資源的名稱,其中resourceName為people/{person_id},例如 Chat API 中的users/123456789代表與 People API 中的people/123456789相同的人。- Directory API 中
User資源的id(例如 Chat API 中的users/123456789) 代表與 Directory API 中users/123456789相同的人。 - 如果是透過使用者驗證發出的 API 要求,則為使用者的電子郵件地址 (別名),例如
users/EMAIL_USERNAME@WORKSPACE_DOMAIN.com。
- Chat API 中的
如果是外部 Google Workspace 機構的使用者,或是使用 Google 帳戶的使用者,請採取下列任一做法:
- 電子郵件別名,例如
users/EMAIL_USERNAME@WORKSPACE_DOMAIN.com或users/EMAIL_USERNAME@gmail.com。 - 從先前的 API 呼叫或互動事件取得的
User資源標準name(例如users/12345678901234567890)。
- 電子郵件別名,例如
從 API 回應或互動事件中識別使用者
您可以透過幾種方式,找出 API 呼叫傳回的使用者或傳入事件:
- Messages API:從
Message.sender取得寄件者身分,或從Message.annotations[].userMention.user取得提及的使用者。 - Memberships API:從
Membership.member取得成員的身分。 - 互動事件:使用者與 Chat 應用程式互動時,Chat 會在
Event.user中傳送互動事件,並附上使用者身分。
由於 Google Chat API 會在使用使用者驗證時,填入內部和外部使用者的設定檔,因此開發人員不需要呼叫 Directory API,即可解析成員和訊息寄件者的名稱或電子郵件地址。