В этом руководстве объясняется, как использовать метод getSpaceReadState
ресурса SpaceReadState
API Google Chat, чтобы получить подробную информацию о состоянии чтения пользователя в пространстве. Чтобы получить состояние чтения сообщения в цепочке сообщений, см. раздел Получение сведений о состоянии чтения цепочки пользователя .
Ресурс SpaceReadState
— это одноэлементный ресурс, который представляет сведения о последнем прочитанном сообщении определенного пользователя в пространстве Google Chat.
Предварительные условия
Питон
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Установите клиентскую библиотеку Python Google API .
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON с именем
client_secrets.json
в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Node.js
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Установите клиентскую библиотеку Google API Node.js.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON с именем
client_secrets.json
в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Скрипт приложений
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте автономный проект Apps Script и включите расширенную службу чата .
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Получить состояние чтения пространства вызывающего пользователя
Чтобы получить подробную информацию о состоянии чтения пользователя в пространстве, включите в свой запрос следующее:
- Укажите область
chat.users.readstate
chat.users.readstate.readonly
. - Вызовите метод
getSpaceReadState
для ресурсаSpaceReadState
. - Передайте
name
состояния чтения пространства, которое нужно получить, которое включает идентификатор пользователя или псевдоним и идентификатор пространства. Получение состояния чтения пространства поддерживает только получение состояния чтения вызывающего пользователя, которое можно указать, установив один из следующих параметров:-
me
псевдоним. Например,users/me/spaces/ SPACE /spaceReadState
. - Адрес электронной почты Workspace звонящего пользователя. Например,
users/user@example.com/spaces/ SPACE /spaceReadState
. - Идентификатор пользователя вызывающего пользователя. Например,
users/ USER /spaces/ SPACE /spaceReadState
.
-
В следующем примере получается состояние чтения пространства вызывающего пользователя:
Питон
- В своем рабочем каталоге создайте файл с
chat_spaceReadState_get.py
. Включите следующий код в
chat_spaceReadState_get.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.users.readstate.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then gets the space read state for the calling user. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.users().spaces().getSpaceReadState( # The space read state to get. # # Replace USER with the calling user's ID, Workspace email, # or the alias me. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. name='users/me/spaces/SPACE/spaceReadState' ).execute() # Prints the API's response. print(result) if __name__ == '__main__': main()
В коде замените следующее:
-
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.
-
В своем рабочем каталоге соберите и запустите пример:
python3 chat_spaceReadState_get.py
Node.js
- В своем рабочем каталоге создайте файл с
chat_spaceReadState_get.js
. Включите следующий код в
chat_spaceReadState_get
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Authenticates with Chat API via user credentials, * then gets the space read state for the calling user. * @return {!Promise<!Object>} */ async function getSpaceReadState() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.users.readstate.readonly', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.users.spaces.getSpaceReadState({ /** * The space read state to get. * * Replace USER with the calling user's ID, Workspace email, * or the alias me. * * Replace SPACE with a space name. * Obtain the space name from the spaces resource of Chat API, * or from a space's URL. */ name: 'users/me/spaces/SPACE/spaceReadState' }); } /** * Use the service endpoint to call Chat API. */ getSpaceReadState().then(console.log);
В коде замените следующее:
-
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.
-
В своем рабочем каталоге соберите и запустите пример:
node chat_spaceReadState_get.js
Скрипт приложений
В этом примере API чата вызывается с помощью Advanced Chat Service .
Добавьте область
chat.users.readstate.readonly
в файлappsscript.json
проекта Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.users.readstate.readonly" ]
Добавьте такую функцию в код проекта Apps Script:
/** * Authenticates with Chat API via user credentials, * then gets the space read state for the calling user. * @param {string} spaceReadStateName The resource name of the space read state. */ function getSpaceReadState(spaceReadStateName) { try { Chat.Users.Spaces.getSpaceReadState(spaceReadStateName); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to get read state with error %s', err.message); } }
API Google Chat получает указанное состояние чтения пространства и возвращает экземпляр ресурса SpaceReadState
.
Связанные темы
- Обновите состояние чтения пространства вызывающего пользователя .
- Получить состояние чтения потока вызывающего пользователя .