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
- Ein Google Workspace-Konto für Unternehmen mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen
- OAuth-Zustimmungsbildschirm konfigurieren
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, einem Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Node.js-Cloud-Clientbibliothek.
-
OAuth-Client-ID-Anmeldedaten für eine Desktopanwendung erstellen Wenn Sie das Beispiel in dieser Anleitung ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
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.pinsoderchat.spacesan. - Rufen Sie
messagePins.createauf. - Geben Sie
parent(den Bereichsnamen) an und geben Sie einenbodymit demmessage-Ressourcennamen der ursprünglichen Nachricht an.
Im folgenden Beispiel wird eine Nachricht in einem Gruppenbereich angepinnt:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_pin_message.py. Fügen Sie den folgenden Code in
chat_pin_message.pyein: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()Ersetzen Sie im Code Folgendes:
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.pinsoderchat.spacesan. - Rufen Sie
messagePins.deleteauf. - Setzen Sie
nameauf den Ressourcennamen des zu löschendenMessagePin.
So heben Sie das Anpinnen einer Nachricht auf:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_unpin_message.py. Fügen Sie den folgenden Code in
chat_unpin_message.pyein: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()Ersetzen Sie im Code Folgendes:
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.pinsoderchat.spaces. - Rufen Sie
messagePins.listauf. - Geben Sie
parentals Space-Namen an, um angepinnte Nachrichten abzurufen.
So rufen Sie angepinnte Nachrichten auf:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_list_pinned_messages.py. Fügen Sie den folgenden Code in
chat_list_pinned_messages.pyein: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()Ersetzen Sie im Code
SPACEdurch die Bereichs-ID aus demnamedes Bereichs.Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_list_pinned_messages.py
Weitere Informationen
- Nachricht formatieren
- Nachricht löschen
- Details zu einer Nachricht abrufen
- Nachrichten in einem Gruppenbereich auflisten
- Nachricht aktualisieren
- Nachricht senden: