Mesajla ilgili ayrıntıları alma

Bu kılavuzda, Google Chat API'nin Message kaynağındaki get() yönteminin, metin veya kart mesajıyla ilgili ayrıntıları döndürmek için nasıl kullanılacağı açıklanmaktadır.

Chat API'de Chat mesajı, Message kaynağı ile temsil edilir. Chat kullanıcıları yalnızca metin içeren mesajlar gönderebilirken Chat uygulamaları, statik veya etkileşimli kullanıcı arayüzleri görüntüleme, kullanıcılardan bilgi toplama ve mesajları gizli olarak iletme gibi birçok başka mesajlaşma özelliğini kullanabilir. Chat API'de kullanılabilen mesajlaşma özellikleri hakkında daha fazla bilgi edinmek için Google Chat mesajlarına genel bakış başlıklı makaleyi inceleyin.

Ön koşullar

Node.js

Python

Java

Apps Komut Dosyası

Kullanıcı kimlik doğrulaması içeren mesaj alma

Kullanıcı kimlik doğrulaması içeren bir iletiyle ilgili ayrıntıları almak için isteğinizde aşağıdakileri iletin:

  • chat.messages.readonly veya chat.messages yetkilendirme kapsamını belirtin.
  • GetMessage() yöntemini çağırın.
  • name değerini, alınacak mesajın kaynak adı olarak ayarlayın.

Aşağıdaki örnekte, kullanıcı kimlik doğrulaması içeren bir ileti alınmaktadır:

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 Komut Dosyası

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

Bu örneği çalıştırmak için aşağıdakileri değiştirin:

  • SPACE_NAME: Alanın name kimliği. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.
  • MESSAGE_NAME: İletinin name bölümündeki kimlik. Kimliği, Chat API ile asenkron olarak mesaj oluşturduktan sonra döndürülen yanıt gövdesinden veya oluşturma sırasında mesaja atanan özel adla alabilirsiniz.

Chat API, belirtilen iletiyi ayrıntılandıran bir Message örneği döndürür.

Uygulama kimlik doğrulamasıyla ilgili mesaj alma

Uygulama kimlik doğrulaması içeren bir mesajla ilgili ayrıntılı bilgi edinmek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, uygulama kimlik doğrulaması içeren bir ileti alınmaktadır:

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 Komut Dosyası

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

Bu örneği çalıştırmak için aşağıdakileri değiştirin:

  • SPACE_NAME: Alanın name kimliği. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.
  • MESSAGE_NAME: İletinin name bölümündeki kimlik. Kimliği, Chat API ile asenkron olarak mesaj oluşturduktan sonra döndürülen yanıt gövdesinden veya oluşturma sırasında mesaja atanan özel adla alabilirsiniz.

Chat API, belirtilen iletiyi ayrıntılandıran bir Message örneği döndürür.

Yönetici onayıyla Chat uygulaması olarak mesaj alma

chat.app.* yetkilendirme kapsamıyla uygulama kimlik doğrulaması için tek seferlik yönetici onayı gerekir.

Chat REST API'yi kullanarak uygulama kimlik doğrulaması ile ilgili mesaj hakkında ayrıntılı bilgi almak için isteğinizde aşağıdakileri iletin:

  • GetMessage() yöntemini çağırın.
  • chat.app.messages.readonly yetkilendirme kapsamını belirtin.
  • name değerini, alınacak mesajın kaynak adı olarak ayarlayın.

API anahtarı oluşturma

Bir geliştirici önizlemesi API yöntemini çağırmak için API bulma belgesinin herkese açık olmayan bir geliştirici önizlemesi sürümünü kullanmanız gerekir. İsteğin kimliğini doğrulamak için bir API anahtarı iletmeniz gerekir.

API anahtarı oluşturmak için uygulamanızın Google Cloud projesini açın ve aşağıdakileri yapın:

  1. Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.

    Kimlik Bilgileri'ne gidin.

  2. Kimlik bilgileri oluştur > API anahtarı'nı tıklayın.
  3. Yeni API anahtarınız gösterilir.
    • Uygulamanızın kodunda kullanmak üzere API anahtarınızı kopyalamak için Kopyala'yı tıklayın. API anahtarını, projenizin kimlik bilgilerinin "API Anahtarları" bölümünde de bulabilirsiniz.
    • Yetkisiz kullanımı önlemek için API anahtarının nerede ve hangi API'ler için kullanılabileceğini kısıtlamanızı öneririz. Daha fazla bilgi için API kısıtlamaları ekleme başlıklı makaleyi inceleyin.

Chat API'yi çağıran bir komut dosyası yazma

Uygulama kimlik doğrulaması ve yönetici onayı ile Chat REST API kullanılarak gönderilen mesajlarla ilgili ayrıntıları nasıl alacağınızı aşağıda bulabilirsiniz:

Python

  1. Çalışma dizininizde chat_messages_get_admin_app.py adlı bir dosya oluşturun.
  2. chat_messages_get_admin_app.py'ya aşağıdaki kodu ekleyin:

    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. Koddaki aşağıdaki yerleri değiştirin:

    • API_KEY: Chat API için hizmet uç noktası oluşturmak üzere oluşturduğunuz API anahtarı.
    • SPACE_NAME: Alanın name kimliği. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.
    • MESSAGE_NAME: İletinin name bölümündeki kimlik. Kimliği, Chat API ile asenkron olarak mesaj oluşturduktan sonra döndürülen yanıt gövdesinden veya oluşturma sırasında mesaja atanan özel ad ile alabilirsiniz.
  4. Çalışma dizininizde örneği oluşturun ve çalıştırın:

    python3 chat_messages_get_admin_app.py

Chat API, belirtilen iletiyi ayrıntılandıran bir Message örneği döndürür.