Épingler ou retirer des messages dans les espaces Google Chat

Avec la ressource MessagePin de l'API Chat, votre application peut épingler et désépingler des messages, et obtenir la liste de tous les messages épinglés dans les espaces Google Chat. Les messages épinglés sont visibles dans l'interface Chat pour tous les membres de l'espace. Cette API aide votre application à gérer les messages épinglés au nom d'un utilisateur.

Pour savoir comment les utilisateurs épinglent des messages dans les espaces, consultez Épingler des messages, des fichiers et des liens dans les espaces et les messages.

Prérequis

Node.js

Remarques

  • Vous ne pouvez épingler que des messages qui existent déjà dans un espace. Vous ne pouvez pas créer un message et l'épingler dans la même requête.
  • Vous ne pouvez pas épingler les messages qui ne sont visibles que par vous. Par exemple, vous ne pouvez pas épingler les messages privés que vous recevez d'une application.
  • Chaque espace Chat peut contenir jusqu'à 100 messages épinglés. Si votre application tente d'épingler un 101e message, l'API renvoie une erreur.

Épingler un message

Pour épingler un message avec l'authentification de l'utilisateur, transmettez les éléments suivants dans votre requête :

  • Indiquez le champ d'application de l'autorisation chat.spaces.pins ou chat.spaces.
  • Appelez messagePins.create.
  • Spécifiez parent (le nom de l'espace) et fournissez un body avec le nom de ressource message du message d'origine.

L'exemple suivant épingle un message dans un espace :

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_pin_message.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez les éléments suivants :

    • SPACE : ID de l'name de l'espace.
    • MESSAGE : ID de l'name du message.
  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_pin_message.py

Retirer l'épinglage d'un message

Pour désépingler un message avec authentification de l'utilisateur, transmettez les informations suivantes dans votre requête :

  • Indiquez le champ d'application de l'autorisation chat.spaces.pins ou chat.spaces.
  • Appelez messagePins.delete.
  • Définissez name sur le nom de ressource du MessagePin à supprimer.

Voici comment désépingler un message :

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_unpin_message.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez les éléments suivants :

    • SPACE : ID de l'name de l'espace.
    • MESSAGE : ID de l'name du message.
  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_unpin_message.py

Obtenir la liste des messages épinglés

Pour obtenir la liste des messages épinglés dans les espaces auxquels vous avez accès, utilisez l'authentification utilisateur et transmettez les éléments suivants dans votre requête :

  • Spécifiez l'un des niveaux d'accès en lecture suivants : chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins ou chat.spaces.
  • Appelez messagePins.list.
  • Spécifiez parent comme nom de l'espace à partir duquel extraire les messages épinglés.

Pour lister les messages épinglés :

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_list_pinned_messages.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez SPACE par l'ID de l'espace à partir de name de l'espace.

  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_list_pinned_messages.py