Visualizzare i dettagli di un messaggio

Questa guida spiega come utilizzare il metodo get() nella risorsa Message dell'API Google Chat per restituire i dettagli di un messaggio di testo o con scheda.

Nell'API Chat, un messaggio di Chat è rappresentato dalla risorsa Message. Mentre gli utenti di Chat possono inviare solo messaggi di testo, le app di chat possono utilizzare molte altre funzionalità di messaggistica, tra cui la visualizzazione di interfacce utente statiche o interattive, la raccolta di informazioni dagli utenti e l'invio privato di messaggi. Per scoprire di più sulle funzionalità di messaggistica disponibili per l'API Chat, consulta la Panoramica dei messaggi di Google Chat.

Prerequisiti

Node.js

Python

Java

Apps Script

Ricevere un messaggio con l'autenticazione utente

Per ottenere informazioni dettagliate su un messaggio con autenticazione utente, trasmetti quanto segue nella richiesta:

  • Specifica l'ambito di autorizzazione chat.messages.readonly o chat.messages.
  • Chiama il metodo GetMessage().
  • Imposta name sul nome della risorsa del messaggio da recuperare.

L'esempio seguente recupera un messaggio con autenticazione utente:

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); }

Per eseguire questo esempio, sostituisci quanto segue:

  • SPACE_NAME: l'ID di name dello spazio. Puoi ottenere l'ID chiamando il metodo ListSpaces() o dall'URL dello spazio.
  • MESSAGE_NAME: l'ID del name del messaggio. Puoi ottenere l'ID dal corpo della risposta restituito dopo la creazione di un messaggio in modo asincrono con l'API Chat o con il nome personalizzato assegnato al messaggio al momento della creazione.

L'API Chat restituisce un'istanza di Message che descrive in dettaglio il messaggio specificato.

Ricevere un messaggio con l'autenticazione dell'app

Per ottenere i dettagli di un messaggio con autenticazione dell'app, trasmetti quanto segue nella richiesta:

L'esempio seguente recupera un messaggio con autenticazione dell'app:

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); }

Per eseguire questo esempio, sostituisci quanto segue:

  • SPACE_NAME: l'ID di name dello spazio. Puoi ottenere l'ID chiamando il metodo ListSpaces() o dall'URL dello spazio.
  • MESSAGE_NAME: l'ID del name del messaggio. Puoi ottenere l'ID dal corpo della risposta restituito dopo la creazione di un messaggio in modo asincrono con l'API Chat o con il nome personalizzato assegnato al messaggio al momento della creazione.

L'API Chat restituisce un'istanza di Message che descrive in dettaglio il messaggio specificato.

Ricevere un messaggio come app Chat con l'approvazione dell'amministratore

L'autenticazione dell'app con un ambito di autorizzazione chat.app.* richiede l'approvazione dell'amministratore una tantum.

Per ottenere i dettagli di un messaggio con autenticazione dell'app utilizzando l'API REST di Chat, trasmetti quanto segue nella richiesta:

  • Chiama il metodo GetMessage().
  • Specifica l'ambito di autorizzazione chat.app.messages.readonly.
  • Imposta name sul nome della risorsa del messaggio da recuperare.

Crea una chiave API

Per chiamare un metodo API di anteprima per gli sviluppatori, devi utilizzare una versione di anteprima per gli sviluppatori non pubblica del documento di rilevamento API. Per autenticare la richiesta, devi passare una chiave API.

Per creare la chiave API, apri il progetto Google Cloud della tua app e svolgi i seguenti passaggi:

  1. Nella console Google Cloud, vai a Menu > API e servizi > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali > Chiave API.
  3. Viene visualizzata la nuova chiave API.
    • Fai clic su Copia per copiare la chiave API da utilizzare nel codice della tua app. La chiave API è disponibile anche nella sezione "Chiavi API" delle credenziali del progetto.
    • Per impedire l'uso non autorizzato, ti consigliamo di limitare dove e per quali API può essere utilizzata la chiave API. Per maggiori dettagli, vedi Aggiungere limitazioni API.

Scrivere uno script che chiama l'API Chat

Ecco come ottenere i dettagli di un messaggio con l'autenticazione dell'app e l'approvazione dell'amministratore e l'API REST di Chat:

Python

  1. Nella directory di lavoro, crea un file denominato chat_messages_get_admin_app.py.
  2. Includi il seguente codice in chat_messages_get_admin_app.py:

    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. Nel codice, sostituisci quanto segue:

    • API_KEY: la chiave API che hai creato per creare l'endpoint del servizio per l'API Chat.
    • SPACE_NAME: l'ID di name dello spazio. Puoi ottenere l'ID chiamando il metodo ListSpaces() o dall'URL dello spazio.
    • MESSAGE_NAME: l'ID del name del messaggio. Puoi ottenere l'ID dal corpo della risposta restituito dopo la creazione di un messaggio in modo asincrono con l'API Chat o con il nome personalizzato assegnato al messaggio al momento della creazione.
  4. Nella directory di lavoro, compila ed esegui l'esempio:

    python3 chat_messages_get_admin_app.py

L'API Chat restituisce un'istanza di Message che descrive in dettaglio il messaggio specificato.