Nachrichten in Google Chat-Gruppenbereichen anpinnen oder loslösen

Mit der MessagePin-Ressource in der Chat API kann Ihre App Nachrichten anpinnen, Nachrichten lösen und eine Liste aller angepinnten Nachrichten in Google Chat-Bereichen abrufen. Angepinnte Nachrichten sind in der Chat-Benutzeroberfläche für alle Mitglieder des Bereichs sichtbar. Diese API hilft Ihrer App, angepinnte Nachrichten im Namen eines Nutzers zu verwalten.

Informationen dazu, wie Nutzer Nachrichten in Bereichen anpinnen, finden Sie unter Nachrichten, Dateien und Links in Bereichen und Nachrichten anpinnen.

Vorbereitung

Node.js

Hinweise

  • Sie können nur Nachrichten anpinnen, die bereits in einem Gruppenbereich vorhanden sind. Sie können nicht in derselben Anfrage eine neue Nachricht erstellen und anpinnen.
  • Sie können keine Nachrichten anpinnen, die nur für Sie sichtbar sind. So können Sie beispielsweise keine privaten Nachrichten anpinnen, die Sie von einer App erhalten.
  • Jeder Chatbereich kann bis zu 100 angepinnte Nachrichten enthalten. Wenn Ihre App versucht, eine 101. Nachricht anzupinnen, gibt die API einen Fehler zurück.

Nachrichten anpinnen

Wenn Sie eine Nachricht mit Nutzerauthentifizierung anpinnen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie den Autorisierungsbereich chat.spaces.pins oder chat.spaces an.
  • Rufen Sie messagePins.create auf.
  • Geben Sie parent (den Bereichsnamen) an und geben Sie einen body mit dem message-Ressourcennamen der ursprünglichen Nachricht an.

Im folgenden Beispiel wird eine Nachricht in einem Gruppenbereich angepinnt:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_pin_message.py.
  2. Fügen Sie den folgenden Code in chat_pin_message.py ein:

    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. Ersetzen Sie im Code Folgendes:

    • SPACE: die ID aus dem name des Bereichs.
    • MESSAGE: die ID aus dem name der Nachricht.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_pin_message.py

Nachricht loslösen

Wenn Sie eine Nachricht mit Nutzerauthentifizierung entpinnen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie den Autorisierungsbereich chat.spaces.pins oder chat.spaces an.
  • Rufen Sie messagePins.delete auf.
  • Setzen Sie name auf den Ressourcennamen des zu löschenden MessagePin.

So heben Sie das Anpinnen einer Nachricht auf:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_unpin_message.py.
  2. Fügen Sie den folgenden Code in chat_unpin_message.py ein:

    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. Ersetzen Sie im Code Folgendes:

    • SPACE: die ID aus dem name des Bereichs.
    • MESSAGE: die ID aus dem name der Nachricht.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_unpin_message.py

Liste der angepinnten Nachrichten abrufen

Wenn Sie eine Liste der angepinnten Nachrichten in Gruppenbereichen abrufen möchten, auf die Sie Zugriff haben, verwenden Sie die Nutzerauthentifizierung und übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie einen der Lesebereiche an: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins oder chat.spaces.
  • Rufen Sie messagePins.list auf.
  • Geben Sie parent als Space-Namen an, um angepinnte Nachrichten abzurufen.

So rufen Sie angepinnte Nachrichten auf:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_list_pinned_messages.py.
  2. Fügen Sie den folgenden Code in chat_list_pinned_messages.py ein:

    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. Ersetzen Sie im Code SPACE durch die Bereichs-ID aus dem name des Bereichs.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_list_pinned_messages.py