Fissare o staccare i messaggi negli spazi di Google Chat

Con la risorsa MessagePin nell'API Chat, la tua app può mettere in primo piano i messaggi, rimuoverli e ottenere un elenco di tutti i messaggi messi in primo piano negli spazi di Google Chat. I messaggi messi in primo piano sono visibili nell'interfaccia di Chat per tutti i membri dello spazio. Questa API aiuta la tua app a gestire i messaggi messi in primo piano per conto di un utente.

Per informazioni su come gli utenti mettono in primo piano i messaggi negli spazi, vedi Mettere in primo piano messaggi, file & link in spazi & messaggi.

Prerequisiti

Node.js

Considerazioni

  • Puoi mettere in primo piano solo i messaggi già esistenti in uno spazio. Non puoi creare un nuovo messaggio e metterlo in primo piano nella stessa richiesta.
  • Non puoi mettere in primo piano i messaggi visibili solo a te. Ad esempio, non puoi mettere in primo piano i messaggi privati che ricevi da un'app.
  • Ogni spazio di Chat può avere fino a 100 messaggi messi in primo piano. Se la tua app tenta di mettere in primo piano un 101° messaggio, l'API restituisce un errore.

Mettere in primo piano un messaggio

Per mettere in primo piano un messaggio con l'autenticazione utente, passa quanto segue nella richiesta:

  • Specifica l'ambito di autorizzazione chat.spaces.pins o chat.spaces.
  • Chiama messagePins.create.
  • Specifica il parent (il nome dello spazio) e fornisci un body con il nome della risorsa message del messaggio originale.

L'esempio seguente mette in primo piano un messaggio in uno spazio:

Python

  1. Nella directory di lavoro, crea un file denominato chat_pin_message.py.
  2. Includi il seguente codice in chat_pin_message.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then pins a message in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Pin a message.
        result = service.spaces().messagePins().create(
            # The space to pin the message in.
            #
            # Replace SPACE with a space ID or name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to pin.
            body={
                'message': 'spaces/SPACE/messages/MESSAGE'
            }
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nel codice, sostituisci quanto segue:

    • SPACE: l'ID del name dello spazio.
    • MESSAGE: l'ID del name del messaggio.
  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_pin_message.py

Rimuovere un messaggio messo in primo piano

Per rimuovere un messaggio messo in primo piano con l'autenticazione utente, passa quanto segue nella richiesta:

  • Specifica l'ambito di autorizzazione chat.spaces.pins o chat.spaces.
  • Chiama messagePins.delete.
  • Imposta name sul nome della risorsa MessagePin da eliminare.

Ecco come rimuovere un messaggio messo in primo piano:

Python

  1. Nella directory di lavoro, crea un file denominato chat_unpin_message.py.
  2. Includi il seguente codice in chat_unpin_message.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then unpins a message from a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Unpin a message.
        result = service.spaces().messagePins().delete(
            # The resource name of the message pin to delete.
            #
            # Replace SPACE with a space ID or name, and MESSAGE with the message ID.
            name='spaces/SPACE/messagePins/MESSAGE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nel codice, sostituisci quanto segue:

    • SPACE: l'ID del name dello spazio.
    • MESSAGE: l'ID del name del messaggio.
  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_unpin_message.py

Visualizzare un elenco dei messaggi messi in primo piano

Per visualizzare un elenco dei messaggi messi in primo piano negli spazi a cui hai accesso, utilizza l'autenticazione utente e passa quanto segue nella richiesta:

  • Specifica uno degli ambiti di lettura: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins o chat.spaces.
  • Chiama messagePins.list.
  • Specifica parent come nome dello spazio da cui recuperare i messaggi messi in primo piano.

Ecco come elencare i messaggi messi in primo piano:

Python

  1. Nella directory di lavoro, crea un file denominato chat_list_pinned_messages.py.
  2. Includi il seguente codice in chat_list_pinned_messages.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists pinned messages in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # List pinned messages.
        result = service.spaces().messagePins().list(
            # The space to list pinned messages from.
            #
            # Replace SPACE with a space ID or name.
            parent='spaces/SPACE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nel codice, sostituisci SPACE con l'ID dello spazio dal name dello spazio.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_list_pinned_messages.py