Na tej stronie wyjaśniamy, jak aplikacje Google Chat i deweloperzy mogą identyfikować i określać użytkowników Google Chat.
Aby wykonać dowolną z tych czynności, aplikacja Google Chat lub deweloper musi określić użytkownika:
- Utwórz wiadomość, która zawiera wzmiankę o użytkowniku.
- Zapraszanie lub dodawanie użytkownika do istniejącego pokoju albo dodawanie użytkownika do nowego pokoju.
- Znajdź wiadomości na czacie między aplikacją do obsługi czatu a określonym użytkownikiem lub między dwoma użytkownikami.
- Pobieranie szczegółów członkostwa użytkownika w pokoju
- Wysyłanie wiadomości prywatnej do użytkownika.
- Subskrybuj użytkownika za pomocą interfejsu Google Workspace Events API, aby otrzymywać informacje o zmianach w jego członkostwie.
Jak Google Chat identyfikuje użytkowników
Interfejs Google Chat API generuje Userzasób dla każdej osoby i aplikacji, która korzysta z Google Chat. Zasób User zawiera te pola:
name: nazwa zasobu w formacieusers/{user}, gdzie{user}jest unikalnym i stabilnym identyfikatorem. Możesz używaćusers/appjako aliasu aplikacji do połączeń w Google Chat.displayName: Tylko dane wyjściowe. Wyświetlana nazwa użytkownika.avatarUrl: Tylko dane wyjściowe. Adres URL obrazu awatara użytkownika.email: Tylko dane wyjściowe. Adres e-mail użytkownika.domainId: unikalny identyfikator domeny Google Workspace użytkownika.type: typ użytkownika. Określa, czy użytkownik jest aplikacją do czatu (BOT), czy osobą (HUMAN).isAnonymous: Tylko dane wyjściowe. Gdytrue, oznacza to, że użytkownik został usunięty lub jego profil jest niewidoczny.
Szczegóły profilu użytkownika i reguły widoczności
Gdy wywołujesz interfejsy Messages API i Memberships API za pomocą uwierzytelniania użytkownika, interfejs Google Chat API wypełnia zasób User szczegółami profilu.
Interfejs API wypełnia pola displayName, email i avatarUrl zarówno w przypadku użytkowników wewnętrznych (w Twojej organizacji Google Workspace), jak i zewnętrznych (w organizacjach zewnętrznych lub na osobistych kontach Google).
Przykłady miejsc, w których interfejs API wypełnia profile użytkowników:
senderelementuMessage.- Użytkownicy w wiadomości
annotations, np. użytkownik@mentions. memberw ramach zasobuMembership.
Zasady dotyczące prywatności i widoczności
Aby chronić prywatność użytkowników, interfejs Google Chat API stosuje określone reguły widoczności podczas określania, czy wypełnić szczegóły profilu użytkownika:
- Wypełniony profil: interfejs API wypełnia szczegóły profilu (
displayName,emailiavatarUrlsą obecne, aisAnonymousma wartośćfalse), jeśli użytkownik zaakceptował zaproszenie do pokoju (jest członkiem pokoju) lub ma wcześniejsze powiązanie (np. historię interakcji w wiadomościach bezpośrednich) z użytkownikiem, który dzwoni. - Anonimowy profil: jeśli użytkownik zostanie wspomniany w pokoju, w którym nie jest członkiem i nie ma wcześniejszego powiązania z użytkownikiem wywołującym, jego profil pozostanie anonimowy. W przypadku anonimowego użytkownika wartość
isAnonymoustotrue, a szczegóły takie jakdisplayName,emailiavatarUrlsą pomijane. W przypadku żądań do interfejsu API wysyłanych z uwierzytelnianiem aplikacji poledisplayNamejest zawsze wypełnione.
Poniższy przykład w formacie JSON przedstawia zasób User z wypełnionymi szczegółami profilu
zwrócony w odpowiedzi interfejsu API lub zdarzeniu interakcji:
{
"name": "users/12345678901234567890",
"displayName": "Sasha",
"domainId": "123abc",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "sasha@example.com",
"type": "HUMAN",
"isAnonymous": false
}
Poniższy przykład JSON przedstawia anonimowe zasoby User, w których szczegóły profilu użytkownika nie są widoczne dla wywołującego:
{
"name": "users/10987654321098765432",
"type": "HUMAN",
"isAnonymous": true
}
Określanie użytkownika w wywołaniu interfejsu Google Chat API
Aby określić użytkownika, użyj tych wartości w przypadku wartości {user}:
W przypadku użytkowników w organizacji Google Workspace zastosuj jedną z tych metod:
namezasobuUserw interfejsie Chat API, np.users/123456789.{person_id}w nazwiePersonzasobu w interfejsie People API, gdzieresourceNametopeople/{person_id}– na przykładusers/123456789w interfejsie Chat API reprezentuje tę samą osobę copeople/123456789w interfejsie People API.- Wartość
idw przypadku zasobuUserw interfejsie Directory API, np.users/123456789w interfejsie Chat API, reprezentuje tę samą osobę cousers/123456789w interfejsie Directory API. - W przypadku żądań API wysyłanych z uwierzytelnianiem użytkownika adres e-mail użytkownika jako alias, np.
users/EMAIL_USERNAME@WORKSPACE_DOMAIN.com.
W przypadku użytkownika z zewnętrznej organizacji Google Workspace lub użytkownika, który korzysta z konta Google, użyj jednej z tych opcji:
- Alias e-mail, np.
users/EMAIL_USERNAME@WORKSPACE_DOMAIN.comlubusers/EMAIL_USERNAME@gmail.com. - Kanoniczny
namezasobuUser(np.users/12345678901234567890) uzyskany z poprzedniego wywołania interfejsu API lub zdarzenia interakcji.
- Alias e-mail, np.
Identyfikowanie użytkownika na podstawie odpowiedzi interfejsu API lub zdarzenia interakcji
Użytkowników zwróconych przez wywołania interfejsu API lub zdarzenia przychodzące możesz identyfikować na kilka sposobów:
- Messages API: pobieranie tożsamości nadawcy z pola
Message.senderlub wymienionych użytkowników z polaMessage.annotations[].userMention.user. - Memberships API: pobieranie tożsamości członka z
Membership.member. - Zdarzenia interakcji: gdy użytkownik wchodzi w interakcję z aplikacją do obsługi czatu, Chat wysyła zdarzenie interakcji z tożsamością użytkownika w
Event.user.
Interfejs Google Chat API wypełnia profile użytkowników wewnętrznych i zewnętrznych podczas korzystania z uwierzytelniania użytkowników, więc programiści nie muszą wywoływać interfejsu Directory API, aby rozwiązywać nazwy lub adresy e-mail członków i nadawców wiadomości.
Powiązane artykuły
- Uwierzytelnianie i autoryzowanie jako użytkownik Google Chat
- Dodawanie użytkownika do pokoju
- Zarządzanie użytkownikami w pokoju
- @ wzmianka o użytkowniku w wiadomości.
UserDokumentacja API REST zasobów