Details zu einer Nachricht abrufen

In diesem Leitfaden wird erläutert, wie Sie mit der Methode get() für die Ressource Message der Google Chat API Details zu einer Text- oder Kartenmitteilung zurückgeben.

In der Chat API wird eine Chat-Nachricht durch die Ressource Message dargestellt. Während Chat-Nutzer nur Nachrichten mit Text senden können, können Chat-Apps viele andere Messaging-Funktionen nutzen, darunter das Anzeigen statischer oder interaktiver Benutzeroberflächen, das Erfassen von Informationen von Nutzern und das private Senden von Nachrichten. Weitere Informationen zu den Messaging-Funktionen, die für die Chat API verfügbar sind, finden Sie unter Google Chat-Nachrichten – Übersicht.

Vorbereitung

Node.js

Python

Java

Apps Script

Nachricht mit Nutzerauthentifizierung erhalten

Wenn Sie Details zu einer Nachricht mit Nutzerauthentifizierung abrufen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie den Autorisierungsbereich chat.messages.readonly oder chat.messages an.
  • Rufen Sie die Methode GetMessage() auf.
  • Legen Sie name auf den Ressourcennamen der abzurufenden Nachricht fest.

Im folgenden Beispiel wird eine Nachricht mit Nutzerauthentifizierung abgerufen:

Node.js

chat/client-libraries/cloud/get-message-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.messages.readonly'];

// This sample shows how to get message with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and MESSAGE_NAME here
    name: 'spaces/SPACE_NAME/messages/MESSAGE_NAME'
  };

  // Make the request
  const response = await chatClient.getMessage(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/get_message_user_cred.py
from authentication_utils import create_client_with_user_credentials
import google.oauth2.credentials

from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.messages.readonly"]

# This sample shows how to get message with user credential
def get_message_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.GetMessageRequest(
        # Replace SPACE_NAME and MESSAGE_NAME here
        name = "spaces/SPACE_NAME/messages/MESSAGE_NAME",
    )

    # Make the request
    response = client.get_message(request)

    # Handle the response
    print(response)

get_message_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/GetMessageUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.GetMessageRequest;
import com.google.chat.v1.Message;

// This sample shows how to get message with user credential.
public class GetMessageUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.messages.readonly";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      GetMessageRequest.Builder request = GetMessageRequest.newBuilder()
        // replace SPACE_NAME and MESSAGE_NAME here
        .setName("spaces/SPACE_NAME/members/MESSAGE_NAME");
      Message response = chatServiceClient.getMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to get message with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.readonly'
 * referenced in the manifest file (appsscript.json).
 */
function getMessageUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here
  const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME';

  // Make the request
  const response = Chat.Spaces.Messages.get(name);

  // Handle the response
  console.log(response);
}

Um dieses Beispiel auszuführen, ersetzen Sie Folgendes:

  • SPACE_NAME: Die ID aus dem name des Bereichs. Sie können die ID abrufen, indem Sie die Methode ListSpaces() aufrufen oder die URL des Bereichs verwenden.
  • MESSAGE_NAME: die ID aus dem name der Nachricht. Sie können die ID aus dem Antworttext abrufen, der nach dem asynchronen Erstellen einer Nachricht mit der Chat API oder mit dem benutzerdefinierten Namen zurückgegeben wird, der der Nachricht bei der Erstellung zugewiesen wurde.

Die Chat API gibt eine Instanz von Message zurück, die die angegebene Nachricht enthält.

Nachricht mit App-Authentifizierung erhalten

Wenn Sie Details zu einer Nachricht mit App-Authentifizierung abrufen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie einen Autorisierungsbereich an. In den Beispielen in diesem Abschnitt wird der Bereich chat.bot verwendet, der allgemein verfügbar ist und keine Administratorgenehmigung erfordert. Alternativ können Sie die Autorisierung als Chat-App mit Administratorgenehmigung verwenden, die in der Entwicklervorschau verfügbar ist.
  • Rufen Sie die Methode GetMessage() auf.
  • Legen Sie name auf den Ressourcennamen der abzurufenden Nachricht fest.

Im folgenden Beispiel wird eine Nachricht mit App-Authentifizierung abgerufen:

Node.js

chat/client-libraries/cloud/get-message-app-cred.js
import {createClientWithAppCredentials} from './authentication-utils.js';

// This sample shows how to get message with app credential
async function main() {
  // Create a client
  const chatClient = createClientWithAppCredentials();

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and MESSAGE_NAME here
    name: 'spaces/SPACE_NAME/messages/MESSAGE_NAME'
  };

  // Make the request
  const response = await chatClient.getMessage(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/get_message_app_cred.py
from authentication_utils import create_client_with_app_credentials
from google.apps import chat_v1 as google_chat

# This sample shows how to get message with app credential
def get_message_with_app_cred():
    # Create a client
    client = create_client_with_app_credentials()

    # Initialize request argument(s)
    request = google_chat.GetMessageRequest(
        # Replace SPACE_NAME and MESSAGE_NAME here
        name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME',
    )

    # Make the request
    response = client.get_message(request=request)

    # Handle the response
    print(response)

get_message_with_app_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/GetMessageAppCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.GetMessageRequest;
import com.google.chat.v1.Message;

// This sample shows how to get message with app credential.
public class GetMessageAppCred {

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithAppCredentials()) {
      GetMessageRequest.Builder request = GetMessageRequest.newBuilder()
        // replace SPACE_NAME and MESSAGE_NAME here
        .setName("spaces/SPACE_NAME/members/MESSAGE_NAME");
      Message response = chatServiceClient.getMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to get message with app credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot'
 * used by service accounts.
 */
function getMessageAppCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here
  const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME';
  const parameters = {};

  // Make the request
  const response = Chat.Spaces.Messages.get(name, parameters, getHeaderWithAppCredentials());

  // Handle the response
  console.log(response);
}

Um dieses Beispiel auszuführen, ersetzen Sie Folgendes:

  • SPACE_NAME: Die ID aus dem name des Bereichs. Sie können die ID abrufen, indem Sie die Methode ListSpaces() aufrufen oder die URL des Bereichs verwenden.
  • MESSAGE_NAME: die ID aus dem name der Nachricht. Sie können die ID aus dem Antworttext abrufen, der nach dem asynchronen Erstellen einer Nachricht mit der Chat API oder mit dem benutzerdefinierten Namen zurückgegeben wird, der der Nachricht bei der Erstellung zugewiesen wurde.

Die Chat API gibt eine Instanz von Message zurück, die die angegebene Nachricht enthält.

Nachricht als Chat-App mit Administratorgenehmigung erhalten

Für die App-Authentifizierung mit dem Autorisierungsbereich chat.app.* ist eine einmalige Administratorgenehmigung erforderlich.

Wenn Sie Details zu einer Nachricht mit App-Authentifizierung über die Chat REST API abrufen möchten, müssen Sie Folgendes in Ihrer Anfrage angeben:

  • Rufen Sie die Methode GetMessage() auf.
  • Geben Sie den chat.app.messages.readonly-Autorisierungsbereich an.
  • Legen Sie name auf den Ressourcennamen der abzurufenden Nachricht fest.

API-Schlüssel erstellen

Wenn Sie eine Developer Preview-API-Methode aufrufen möchten, müssen Sie eine nicht öffentliche Developer Preview-Version des API-Erkennungsdokuments verwenden. Zur Authentifizierung der Anfrage müssen Sie einen API-Schlüssel übergeben.

So erstellen Sie den API-Schlüssel: Öffnen Sie das Google Cloud-Projekt Ihrer App und gehen Sie so vor:

  1. Rufen Sie in der Google Cloud Console das Menü  > APIs und Dienste > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
  3. Der neue API-Schlüssel wird angezeigt.
    • Klicken Sie auf „Kopieren“ , um den API-Schlüssel zu kopieren und im Code Ihrer App zu verwenden. Der API-Schlüssel ist auch im Bereich „API-Schlüssel“ der Anmeldedaten Ihres Projekts zu finden.
    • Damit eine nicht autorisierte Verwendung verhindert wird, sollten Sie einschränken, wo und für welche APIs der API-Schlüssel verwendet werden kann. Weitere Informationen finden Sie unter API-Einschränkungen hinzufügen.

Skript schreiben, das die Chat API aufruft

So rufen Sie Details zu einer Nachricht mit App-Authentifizierung und Administratorgenehmigung und der Chat REST API ab:

Python

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

    from google.oauth2 import service_account
    from apiclient.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.app.messages.readonly"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then gets details about a message.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().messages().get(
    
            # The message to get details about.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='spaces/SPACE_NAME/messages/MESSAGE_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code Folgendes:

    • API_KEY: Der API-Schlüssel, den Sie zum Erstellen des Dienstendpunkts für die Chat API erstellt haben.
    • SPACE_NAME: Die ID aus dem name des Bereichs. Sie können die ID abrufen, indem Sie die Methode ListSpaces() aufrufen oder die URL des Bereichs verwenden.
    • MESSAGE_NAME: die ID aus dem name der Nachricht. Sie können die ID aus dem Antworttext abrufen, der nach dem asynchronen Erstellen einer Nachricht mit der Chat API oder mit dem benutzerdefinierten Namen zurückgegeben wird, der der Nachricht beim Erstellen zugewiesen wurde.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_messages_get_admin_app.py

Die Chat API gibt eine Instanz von Message zurück, die die angegebene Nachricht enthält.