В этом руководстве объясняется, как использовать метод getThreadReadState
ресурса ThreadReadState
API Google Chat, чтобы получить подробную информацию о состоянии чтения пользователя в цепочке сообщений. Чтобы получить информацию о состоянии чтения сообщения в пространстве, см. раздел Получение сведений о состоянии чтения пространства пользователя .
Ресурс ThreadReadState
— это одноэлементный ресурс, который представляет сведения о последнем прочитанном сообщении определенного пользователя в цепочке сообщений Google Chat.
Предварительные условия
Питон
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Новейшие клиентские библиотеки Google. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде файла JSON (
client_secrets.json
) в локальном каталоге.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Node.js
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Node.js 14 или более поздней версии
- Инструмент управления пакетами npm
- Новейшие клиентские библиотеки Google. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
npm install @google-cloud/local-auth @googleapis/chat
- Настройте свою среду:
- Создайте проект Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения Chat.
- Создайте учетные данные идентификатора клиента 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
. - Вызовите метод
getThreadReadState
для ресурсаThreadReadState
. - Передайте
name
состояния чтения потока, которое нужно получить, которое включает идентификатор пользователя или псевдоним и идентификатор пространства. Получение состояния чтения потока поддерживает только получение состояния чтения вызывающего пользователя, которое можно указать, установив одно из следующих значений:-
me
псевдоним. Например,users/me/spaces/ SPACE /threads/ THREAD /threadReadState
. - Адрес электронной почты Workspace звонящего пользователя. Например,
users/user@example.com/spaces/ SPACE threads/ THREAD /threadReadState
. - Идентификатор пользователя вызывающего пользователя. Например,
users/ USER /spaces/ SPACE /threads/ THREAD /threadReadState
.
-
В следующем примере получается состояние чтения потока вызывающего пользователя:
Питон
- В своем рабочем каталоге создайте файл с
chat_threadReadState_get.py
. Включите следующий код в
chat_threadReadState_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 thread 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().threads().getThreadReadState( # The thread 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. # # Replace THREAD with a thread name. # Obtain the thread name from the messages resource of Chat API. name='users/me/spaces/SPACE/threads/THREAD/threadReadState' ).execute() # Prints the API's response. print(result) if __name__ == '__main__': main()
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.THREAD
: имя потока, которое вы можете получить из методаspaces.messages.get
в Chat API.
В своем рабочем каталоге соберите и запустите пример:
python3 chat_threadReadState_get.py
Node.js
- В своем рабочем каталоге создайте файл с
chat_threadReadState_get.js
. Включите следующий код
chat_threadReadState_get
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Authenticates with Chat API via user credentials, * then gets the thread read state for the calling user. * @return {!Promise<!Object>} */ async function getThreadReadState() { /** * 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.threads.getThreadReadState({ /** * The thread 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/threads/THREADS/threadReadState' }); } /** * Use the service endpoint to call Chat API. */ getThreadReadState().then(console.log);
В коде замените следующее:
SPACE
: имя пространства, которое можно получить с помощью методаspaces.list
в Chat API или из URL-адреса пространства.THREAD
: имя потока, которое вы можете получить из методаspaces.messages.get
в Chat API.
В своем рабочем каталоге соберите и запустите пример:
node chat_threadReadState_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 thread read state for the calling user. * @param {string} threadReadStateName The resource name of the thread read state. */ function getThreadReadState(threadReadStateName) { try { Chat.Users.Spaces.Threads.getThreadReadState(threadReadStateName); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to get read state with error %s', err.message); } }
API Google Chat получает указанное состояние чтения потока и возвращает экземпляр ресурса ThreadReadState
.
Связанные темы
- Обновите состояние чтения пространства вызывающего пользователя .
- Получите состояние чтения пространства вызывающего пользователя .