Questa guida spiega come utilizzare il metodo updateSpaceReadState
nella
SpaceReadState
risorsa dell'API Google Chat per contrassegnare gli spazi come letti o da leggere.
La
SpaceReadState
risorsa
è una risorsa singleton che rappresenta i dettagli di un
l'ultimo messaggio letto dall'utente specificato in uno spazio di Google Chat.
Prerequisiti
Python
- Un'azienda o un'impresa Google Workspace con accesso a Google Chat.
- Python 3.6 o versioni successive
- Lo strumento di gestione dei pacchetti pip
- Le librerie client di Google più recenti. Per installarle o aggiornarle,
esegui questo comando nell'interfaccia a riga di comando:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Configura l'ambiente:
- Creare un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Abilita e configura l'API Google Chat con un nome, l'icona e la descrizione dell'app Chat.
-
Creare credenziali con ID client OAuth per un'applicazione desktop. Per eseguire l'esempio in questo
guida, salva le credenziali come file JSON (
client_secrets.json
) nel tuo nella directory locale.
- Scegli un ambito di autorizzazione che supporti l'autenticazione degli utenti.
Node.js
- Un'azienda o un'impresa Google Workspace con accesso a Google Chat.
- Node.js 14 o versioni successive
- npm strumento di gestione dei pacchetti
- Le librerie client di Google più recenti. Per installarle o aggiornarle,
esegui questo comando nell'interfaccia a riga di comando:
npm install @google-cloud/local-auth @googleapis/chat
- Configura l'ambiente:
- Creare un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Abilita e configura l'API Google Chat con un nome, l'icona e la descrizione dell'app Chat.
-
Creare credenziali con ID client OAuth per un'applicazione desktop. Per eseguire l'esempio in questo
guida, salva le credenziali come file JSON (
client_secrets.json
) nel tuo nella directory locale.
- Scegli un ambito di autorizzazione che supporti l'autenticazione degli utenti.
Apps Script
- Un'azienda o un'impresa Google Workspace con accesso a Google Chat.
- Configura l'ambiente:
- Creare un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Abilita e configura l'API Google Chat con un nome, l'icona e la descrizione dell'app Chat.
- Creare un progetto Apps Script autonomo e attivare il Servizio di chat avanzato.
- Scegli un ambito di autorizzazione che supporti l'autenticazione degli utenti.
Aggiorna lo stato di lettura dello spazio dell'utente chiamante
Per aggiornare lo stato di lettura di un utente all'interno di uno spazio, includi quanto segue in la tua richiesta:
- Specifica l'ambito dell'autorizzazione
chat.users.readstate
. - Chiama il
Metodo
updateSpaceReadState
ilSpaceReadState
risorsa. - Passa
name
dello stato di lettura dello spazio per ottenerlo, che include un ID utente o alias e un ID spazio. Il recupero dello stato di lettura dello spazio supporta solo il recupero lo stato dell'utente chiamante, che può essere specificato impostando uno dei seguenti:- L'alias
me
. Ad esempio:users/me/spaces/SPACE/spaceReadState
. - L'indirizzo email Workspace dell'utente che ha effettuato la chiamata. Ad esempio:
users/user@example.com/spaces/SPACE/spaceReadState
. - L'ID utente dell'utente chiamante. Ad esempio:
users/USER/spaces/SPACE/spaceReadState
.
- L'alias
- Passa il valore
updateMask
, che specifica gli aspetti dello stato di lettura dello spazio a , che supporta i seguenti percorsi dei campi:lastReadTime
: l'ora in cui lo stato di lettura dello spazio dell'utente è stato aggiornato. Di solito corrisponde al timestamp dell'ultimo messaggio letto, o un timestamp specificato dall'utente per contrassegnare l'ultima posizione di lettura in un spazio. QuandolastReadTime
è precedente all'ora dell'ultimo messaggio di creazione, il valore appare come da leggere nella UI. Per contrassegnare lo spazio come letto, impostalastReadTime
a qualsiasi valore successivo (maggiore) rispetto all'ultima creazione del messaggio nel tempo. Il valorelastReadTime
viene forzato in modo che corrisponda all'ora di creazione del messaggio più recente. Tieni presente che lo stato di lettura dello spazio influisce solo sullo stato di lettura dei messaggi che sono visibili nella conversazione di primo livello dello spazio. Le risposte nei thread sono non interessate da questo timestamp e si basano invece sullo stato di lettura del thread.
L'esempio seguente aggiorna lo stato di lettura dello spazio dell'utente chiamante:
Python
- Nella directory di lavoro, crea un file denominato
chat_spaceReadState_update.py
. Includi il seguente codice in
chat_spaceReadState_update.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"] def main(): ''' Authenticates with Chat API via user credentials, then updates 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().updateSpaceReadState( # The space read state to update. # # 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', updateMask='lastReadTime', body={'lastReadTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z'} ).execute() # Prints the API's response. print(result) if __name__ == '__main__': main()
Nel codice, sostituisci quanto segue:
SPACE
: il nome di uno spazio, che che puoi ottenere Metodospaces.list
nell'API Chat o dall'URL di uno spazio.
Nella directory di lavoro, crea ed esegui l'esempio:
python3 chat_spaceReadState_update.py
Node.js
- Nella directory di lavoro, crea un file denominato
chat_spaceReadState_update.js
. Includi il seguente codice in
chat_spaceReadState_update
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @return {!Promise<!Object>} */ async function updateSpaceReadState() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.users.readstate', ]; 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.updateSpaceReadState({ /** * The space read state to update. * * 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', updateMask: 'lastReadTime', requestBody: { lastReadTime: '{datetime.datetime(2000, 1, 3).isoformat()}Z' } }); } /** * Use the service endpoint to call Chat API. */ getSpaceReadState().then(console.log);
Nel codice, sostituisci quanto segue:
SPACE
: il nome di uno spazio, che che puoi ottenere Metodospaces.list
nell'API Chat o dall'URL di uno spazio.
Nella directory di lavoro, crea ed esegui l'esempio:
node chat_spaceReadState_update.js
Apps Script
In questo esempio viene chiamata l'API Chat utilizzando Servizio Chat avanzato.
Aggiungi l'ambito dell'autorizzazione
chat.users.readstate
al Fileappsscript.json
del progetto Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.users.readstate" ]
Aggiungi una funzione come questa all'interfaccia codice:
/** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @param {string} spaceReadStateName The resource name of the space read state. */ function updateSpaceReadState(spaceReadStateName) { try { const time = new Date('January 1, 2000')).toJSON(); const body = {'lastReadTime': time}; Chat.Users.Spaces.updateSpaceReadState(spaceReadStateName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to update read state with error %s', err.message); } }
L'API Google Chat aggiorna lo stato di lettura dello spazio specificato e restituisce
un'istanza di
SpaceReadState
risorsa.
Argomenti correlati
- Ottieni lo stato di lettura dello spazio dell'utente chiamante.
- Ottieni lo stato di lettura del thread dell'utente chiamante.