In dieser Anleitung wird erläutert, wie Sie die Methode findDirectMessage
in der Ressource Space
der Google Chat API verwenden, um Details zu einem Bereich für Direktnachrichten (DM) abzurufen.
Die Ressource Space
stellt einen Ort dar, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien freigeben und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:
- Direktnachrichten (DMs) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
- Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
- Benannte Gruppenbereiche sind persistente Orte, an denen Nutzer Nachrichten senden, Dateien freigeben und zusammenarbeiten.
Durch die Authentifizierung über die App-Authentifizierung kann eine Chat-Anwendung DMs abrufen, auf die sie in Google Chat Zugriff hat (z. B. DNs, zu denen sie gehört). Bei der Authentifizierung über die Nutzerauthentifizierung werden DMs zurückgegeben, auf die der authentifizierte Nutzer Zugriff hat.
Voraussetzungen
Python
- Python 3.6 oder höher
- Das Paketverwaltungstool pip
Die aktuellen Google-Clientbibliotheken für Python. Führen Sie den folgenden Befehl in der Befehlszeile aus, um sie zu installieren oder zu aktualisieren:
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
Für die Chat-App konfigurierte Autorisierung. Das Suchen einer Direktnachricht unterstützt Folgendes:
- Nutzerauthentifizierung mit dem Autorisierungsbereich
chat.spaces.readonly
oderchat.spaces
. - App-Authentifizierung mit dem Autorisierungsbereich
chat.bot
.
- Nutzerauthentifizierung mit dem Autorisierungsbereich
Node.js
- Node.js und npm
Aktuelle Google-Clientbibliotheken für Node.js Führen Sie den folgenden Befehl über die Befehlszeile aus, um sie zu installieren:
npm install @google-cloud/local-auth @googleapis/chat
- Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
Für die Chat-App konfigurierte Autorisierung. Das Suchen einer Direktnachricht unterstützt Folgendes:
- Nutzerauthentifizierung mit dem Autorisierungsbereich
chat.spaces.readonly
oderchat.spaces
. - App-Authentifizierung mit dem Autorisierungsbereich
chat.bot
.
- Nutzerauthentifizierung mit dem Autorisierungsbereich
Direktnachrichten suchen
Übergeben Sie in Ihrer Anfrage Folgendes, um eine Direktnachricht in Google Chat zu suchen:
- Geben Sie für die App-Authentifizierung den Autorisierungsbereich
chat.bot
an. Geben Sie für die Nutzerauthentifizierung den Autorisierungsbereichchat.spaces.readonly
oderchat.spaces
an. - Rufen Sie die Methode
findDirectMessage
für die RessourceUser
auf und übergeben Sie diename
des anderen Nutzers in der DM, die zurückgegeben werden soll. Bei der Nutzerauthentifizierung gibt diese Methode eine DM zwischen dem aufrufenden Nutzer und dem angegebenen Nutzer zurück. Bei der App-Authentifizierung gibt diese Methode eine DM zwischen der aufrufenden App und dem angegebenen Nutzer zurück. - Wenn Sie einen Nutzer als Mitglied eines Gruppenbereichs hinzufügen möchten, geben Sie
users/{user}
an, wobei{user}
entweder der{person_id}
für dieperson
aus der People API oder die ID eineruser
in der Directory API ist. Wenn die People API-PersonresourceName
beispielsweisepeople/123456789
ist, können Sie den Nutzer dem Gruppenbereich hinzufügen, indem Sie eine Mitgliedschaft mitusers/123456789
alsmember.name
hinzufügen.
Direktnachrichten mit Nutzerauthentifizierung finden
So finden Sie eine Direktnachricht mit der Nutzerauthentifizierung:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_space_find_dm_user.py
. Fügen Sie den folgenden Code in
chat_space_find_dm_user.py
ein: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.spaces.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then returns details about a specified DM. ''' # 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.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() # Prints details about the direct message. print(result) if __name__ == '__main__': main()
Ersetzen Sie im Code
USER
durch denname
einerUser
in Google Chat.Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_space_find_dm_user.py
Node.js
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
find-direct-message-space.js
.Fügen Sie den folgenden Code in
find-direct-message-space.js
ein:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.spaces.readonly', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
Ersetzen Sie im Code
USER
durch denname
einerUser
in Google Chat.Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:
node find-direct-message-space.js
Die Chat API gibt eine Instanz von Space
zurück, die Details zur angegebenen DM enthält.
Direktnachrichten mit App-Authentifizierung finden
So finden Sie eine Direktnachricht mit der App-Authentifizierung:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_space_find_dm_app.py
. Fügen Sie den folgenden Code in
chat_space_find_dm_app.py
ein:from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Use the service endpoint to call Chat API. result = chat.spaces().findDirectMessage( # The other user in the direct message (DM) to return. # # Replace USER with a user name. name='users/USER' ).execute() print(result)
Ersetzen Sie im Code
USER
durch denname
einerUser
in Google Chat.Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_space_find_dm_app.py
Node.js
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
app-find-direct-message-space.js
.Fügen Sie den folgenden Code in
app-find-direct-message-space.js
ein:const chat = require('@googleapis/chat'); /** * Find a direct message Chat space for a user. * @return {!Promise<!Object>} */ async function findDirectMessageSpace() { const scopes = [ 'https://www.googleapis.com/auth/chat.bot', ]; const auth = new chat.auth.GoogleAuth({ scopes, keyFilename: 'credentials.json', }); const authClient = await auth.getClient(); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.findDirectMessage( {name: 'users/USER'}); } findDirectMessageSpace().then(console.log);
Ersetzen Sie im Code
USER
durch denname
einerUser
in Google Chat.Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:
node app-find-direct-message-space.js
Die Chat API gibt eine Instanz von Space
zurück, die Details zur angegebenen DM enthält.
Weitere Informationen
- Erstellen Sie einen Gruppenbereich.
- Richten Sie einen Gruppenbereich ein.
- Details zu einem Gruppenbereich abrufen
- Gruppenbereiche auflisten.
- Gruppenbereiche aktualisieren
- Gruppenbereiche löschen