Ce guide explique comment utiliser la méthode getThreadReadState
sur la ressource ThreadReadState
de l'API Google Chat pour obtenir des informations sur l'état de lecture d'un utilisateur dans un fil de discussion. Pour obtenir l'état de lecture d'un message dans un espace, consultez Obtenir des informations sur l'état de lecture d'un espace utilisateur.
La ressource ThreadReadState
est une ressource singleton qui représente les détails du dernier message lu d'un utilisateur spécifié dans un fil de discussion Google Chat.
Prérequis
Python
- Python 3.6 ou version ultérieure
- L'outil de gestion des packages pip
Les dernières bibliothèques clientes Google pour Python. Pour les installer ou les mettre à jour, exécutez la commande suivante dans votre interface de ligne de commande:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
Autorisation configurée pour l'application Chat. Pour obtenir des informations sur l'état de lecture d'un utilisateur dans un espace, vous devez authentifier l'utilisateur avec le niveau d'autorisation
chat.users.readstate
ouchat.users.readstate.readonly
.
Node.js
- Node.js et npm
Les dernières bibliothèques clientes Google pour Node.js. Pour les installer, exécutez la commande suivante dans votre interface de ligne de commande:
npm install @google-cloud/local-auth @googleapis/chat
- Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
Autorisation configurée pour l'application Chat. Pour obtenir des informations sur l'état de lecture d'un utilisateur dans un espace, vous devez authentifier l'utilisateur avec le niveau d'autorisation
chat.users.readstate
ouchat.users.readstate.readonly
.
Apps Script ;
- Un compte Google Workspace ayant accès à Google Chat
- Une application Chat publiée. Pour créer une application Chat, suivez ce quickstart.
- Autorisation configurée pour l'application Chat. Pour obtenir des informations sur l'état de lecture d'un utilisateur dans un espace, vous devez authentifier l'utilisateur avec le niveau d'autorisation
chat.users.readstate
ouchat.users.readstate.readonly
.
Obtenir l'état de lecture du thread de l'utilisateur appelant
Pour obtenir des informations sur l'état de lecture d'un utilisateur dans un fil de discussion, incluez les éléments suivants dans votre requête:
- Spécifiez le champ d'application des autorisations
chat.users.readstate
ouchat.users.readstate.readonly
. - Appelez la méthode
getThreadReadState
sur la ressourceThreadReadState
. - Transmettez le
name
de l'état de lecture du thread à obtenir, qui inclut un ID utilisateur ou un alias et un ID d'espace. L'obtention de l'état de lecture du thread ne permet d'obtenir que l'état de lecture de l'utilisateur appelant, qui peut être spécifié en définissant l'une des options suivantes :- Alias
me
Exemple :users/me/spaces/SPACE/threads/THREAD/threadReadState
. - Adresse e-mail Workspace de l'utilisateur appelant. Par exemple :
users/user@example.com/spaces/SPACEthreads/THREAD/threadReadState
. - ID utilisateur de l'utilisateur appelant. Par exemple :
users/USER/spaces/SPACE/threads/THREAD/threadReadState
.
- Alias
L'exemple suivant obtient l'état de lecture du thread de l'utilisateur appelant:
Python
- Dans votre répertoire de travail, créez un fichier nommé
chat_threadReadState_get.py
. Incluez le code suivant dans
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()
Dans le code, remplacez ce qui suit:
SPACE
: nom d'espace, que vous pouvez obtenir à l'aide de la méthodespaces.list
de l'API Chat ou de l'URL d'un espace.THREAD
: nom de thread, que vous pouvez obtenir à partir de la méthodespaces.messages.get
de l'API Chat.
Dans votre répertoire de travail, créez et exécutez l'exemple:
python3 chat_threadReadState_get.py
Node.js
- Dans votre répertoire de travail, créez un fichier nommé
chat_threadReadState_get.js
. Incluez le code suivant dans
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);
Dans le code, remplacez ce qui suit:
SPACE
: nom d'espace, que vous pouvez obtenir à l'aide de la méthodespaces.list
de l'API Chat ou de l'URL d'un espace.THREAD
: nom de thread, que vous pouvez obtenir à partir de la méthodespaces.messages.get
de l'API Chat.
Dans votre répertoire de travail, créez et exécutez l'exemple:
node chat_threadReadState_get.js
Apps Script ;
Cet exemple appelle l'API Chat à l'aide du service Chat avancé.
Ajoutez le champ d'application des autorisations
chat.users.readstate.readonly
au fichierappsscript.json
du projet Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.users.readstate.readonly" ]
Ajoutez une fonction comme celle-ci au code du projet 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); } }
L'API Google Chat obtient l'état de lecture du thread spécifié et renvoie une instance de la ressource ThreadReadState
.
Articles associés
- Mettez à jour l'état de lecture de l'espace de l'utilisateur appelant.
- Obtenez l'état de lecture de l'espace de l'utilisateur appelant.