لیست پیام ها

این راهنما نحوه استفاده از متد list() در منبع Message از API چت گوگل را برای مشاهده فهرستی صفحه‌بندی‌شده و قابل فیلتر از پیام‌ها در یک فضا توضیح می‌دهد.

در API چت، یک پیام چت توسط منبع Message نمایش داده می‌شود. در حالی که کاربران چت فقط می‌توانند پیام‌هایی حاوی متن ارسال کنند، برنامه‌های چت می‌توانند از بسیاری از ویژگی‌های پیام‌رسانی دیگر، از جمله نمایش رابط‌های کاربری ایستا یا تعاملی، جمع‌آوری اطلاعات از کاربران و ارسال پیام‌ها به صورت خصوصی، استفاده کنند. برای کسب اطلاعات بیشتر در مورد ویژگی‌های پیام‌رسانی موجود برای API چت، به نمای کلی پیام‌های Google Chat مراجعه کنید.

پیش‌نیازها

نود جی اس

پایتون

جاوا

اسکریپت برنامه‌ها

لیست کردن پیام‌ها به عنوان کاربر

برای فهرست کردن پیام‌هایی که احراز هویت کاربر در آن‌ها لحاظ شده است، کد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.messages.readonly یا chat.messages را مشخص کنید.
  • متد ListMessages() را فراخوانی کنید.

مثال زیر پیام‌های موجود در یک فضای چت را فهرست می‌کند:

نود جی اس

chat/client-libraries/cloud/list-messages-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 list messages 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 here
    parent: 'spaces/SPACE_NAME',
  };

  // Make the request
  const pageResult = chatClient.listMessagesAsync(request);

  // Handle the response. Iterating over pageResult will yield results
  // and resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

پایتون

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

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

# This sample shows how to list messages with user credential
def list_messages_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.ListMessagesRequest(
        # Replace SPACE_NAME here
        parent = 'spaces/SPACE_NAME',
        # Number of results that will be returned at once
        page_size = 100
    )

    # Make the request
    page_result = client.list_messages(request)

    # Handle the response. Iterating over page_result will yield results and
    # resolve additional pages automatically.
    for response in page_result:
        print(response)

list_messages_with_user_cred()

جاوا

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

// This sample shows how to list messages with user credential.
public class ListMessagesUserCred {

  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))) {
      ListMessagesRequest.Builder request = ListMessagesRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        // Number of results that will be returned at once.
        .setPageSize(10);

      // Iterate over results and resolve additional pages automatically.
      for (Message response :
          chatServiceClient.listMessages(request.build()).iterateAll()) {
        System.out.println(JsonFormat.printer().print(response));
      }
    }
  }
}

اسکریپت برنامه‌ها

chat/advanced-service/Main.gs
/**
 * This sample shows how to list messages 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 listMessagesUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const parent = "spaces/SPACE_NAME";

  // Iterate through the response pages using page tokens
  let responsePage;
  let pageToken = null;
  do {
    // Request response pages
    responsePage = Chat.Spaces.Messages.list(parent, {
      pageSize: 10,
      pageToken: pageToken,
    });
    // Handle response pages
    if (responsePage.messages) {
      for (const message of responsePage.messages) {
        console.log(message);
      }
    }
    // Update the page token to the next one
    pageToken = responsePage.nextPageToken;
  } while (pageToken);
}

برای اجرای این نمونه، به جای SPACE_NAME ، شناسه (ID) فیلد name فضا را وارد کنید. می‌توانید شناسه را با فراخوانی متد ListSpaces() یا از طریق URL فضا به دست آورید.

Chat API لیستی از پیام‌های ارسال شده در فضای مشخص شده را برمی‌گرداند. اگر هیچ پیامی از درخواست وجود نداشته باشد، پاسخ Chat API یک شیء خالی را برمی‌گرداند. هنگام استفاده از رابط REST/HTTP، پاسخ شامل یک شیء JSON خالی، {} است.

پیام‌ها را به عنوان یک برنامه چت فهرست کنید

احراز هویت برنامه نیاز به تأیید یک‌باره مدیر دارد.

برای فهرست کردن پیام‌ها از یک فضا با احراز هویت برنامه با استفاده از Chat REST API ، موارد زیر را در درخواست خود ارسال کنید:

  • یکی از حوزه‌های مجوز زیر را مشخص کنید:
    • https://www.googleapis.com/auth/chat.app.messages.readonly
  • متد list را روی منبع messages فراخوانی کنید.
  • name فضایی را که می‌خواهید پیام‌ها از آن فهرست شوند، ارسال کنید.

ایجاد کلید API

برای فراخوانی متد API پیش‌نمایش توسعه‌دهنده، باید از یک نسخه پیش‌نمایش توسعه‌دهنده غیرعمومی از سند کشف API استفاده کنید. برای تأیید اعتبار درخواست، باید یک کلید API ارسال کنید.

برای ایجاد کلید API، پروژه Google Cloud برنامه خود را باز کنید و موارد زیر را انجام دهید:

  1. در کنسول گوگل کلود، به Menu > APIs & Services > Credentials بروید.

    به اعتبارنامه‌ها بروید

  2. روی ایجاد اعتبارنامه > کلید API کلیک کنید.
  3. کلید API جدید شما نمایش داده می‌شود.
    • برای کپی کردن کلید API خود جهت استفاده در کد برنامه، روی گزینه کپی کردن کلیک کنید. کلید API را می‌توانید در بخش «کلیدهای API» در اعتبارنامه‌های پروژه خود نیز پیدا کنید.
    • برای جلوگیری از استفاده غیرمجاز، توصیه می‌کنیم مکان و نوع APIهایی که کلید API می‌تواند استفاده شود را محدود کنید. برای جزئیات بیشتر، به افزودن محدودیت‌های API مراجعه کنید.

اسکریپتی بنویسید که Chat API را فراخوانی کند

در اینجا نحوه فهرست کردن پیام‌ها با احراز هویت برنامه و Chat REST API آورده شده است:

پایتون

  1. در دایرکتوری کاری خود، فایلی با نام chat_messages_list_app.py ایجاد کنید.
  2. کد زیر را در chat_messages_list_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 lists messages from a specified space.
        '''
    
        # 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().list(
    
            # The space to list messages from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE_NAME'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، موارد زیر را جایگزین کنید:

    • API_KEY : کلید API که برای ساخت نقطه پایانی سرویس برای Chat API ایجاد کرده‌اید.

    • SPACE_NAME : نام یک فضا که می‌توانید آن را از متد spaces.list در Chat API یا از URL یک فضا به دست آورید.

  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_messages_list_app.py

Chat API لیستی از پیام‌های ارسال شده در فضای مشخص شده را برمی‌گرداند. اگر هیچ پیامی از درخواست وجود نداشته باشد، پاسخ Chat API یک شیء خالی را برمی‌گرداند. هنگام استفاده از رابط REST/HTTP، پاسخ شامل یک شیء JSON خالی، {} است.