کاربران و برنامه‌های چت Google را در یک فضا فهرست کنید

این راهنما نحوه استفاده از روش list در منبع membership Google Chat API برای فهرست کردن کاربران و برنامه چت در یک فضا به‌عنوان فهرست صفحه‌بندی‌شده و قابل فیلتر از عضویت‌ها در یک فضا توضیح می‌دهد. فهرست کردن عضویت‌ها با احراز هویت برنامه ، عضویت‌ها را در فضاهایی فهرست می‌کند که برنامه Chat به آنها دسترسی دارد، اما عضویت‌های برنامه Chat، از جمله عضویت خود را استثنا نمی‌کند. فهرست کردن عضویت‌ها با احراز هویت کاربر ، عضویت‌ها را در فضاهایی فهرست می‌کند که کاربر احراز هویت شده به آنها دسترسی دارد.

منبع Membership نشان می‌دهد که آیا کاربر انسانی یا برنامه چت Google به یک فضا دعوت شده، بخشی از آن یا غایب است.

پیش نیازها

پایتون

  • پایتون 3.6 یا بالاتر
  • ابزار مدیریت بسته پیپ
  • جدیدترین کتابخانه های مشتری گوگل برای پایتون. برای نصب یا به روز رسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
  • مجوز برای برنامه چت پیکربندی شد. لیست عضویت از هر دو روش احراز هویت زیر پشتیبانی می کند:

فهرست کاربران و برنامه چت در فضایی با احراز هویت کاربر

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

مثال زیر اعضای فضای انسانی (نه مدیران فضا) را فهرست می‌کند که برای کاربر تأیید شده قابل مشاهده است زیرا filter روی ROLE_Member تنظیم شده است:

پایتون

  1. در پوشه کاری خود، یک فایل با نام chat_member_list_user.py ایجاد کنید.
  2. کد زیر را در chat_member_list_user.py قرار دهید:

    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.memberships.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified space.
        '''
    
        # 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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints the list of memberships.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، SPACE با یک نام فاصله جایگزین کنید، که می توانید آن را از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

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

    python3 chat_member_list_user.py
    

Google Chat API فهرستی از اعضای فضای انسانی (به استثنای مدیران فضا) و اعضای برنامه را از فضای مشخص شده برمی گرداند.

فهرست کاربران و برنامه چت در فضایی با احراز هویت برنامه

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

مثال زیر اعضای فضای انسانی (نه مدیران فضا) قابل مشاهده در برنامه چت را فهرست می کند:

پایتون

  1. در پوشه کاری خود، فایلی با نام chat_member_list_app.py ایجاد کنید.
  2. کد زیر را در chat_member_list_app.py قرار دهید:

    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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. در کد، SPACE با یک نام فاصله جایگزین کنید، که می توانید آن را از روش spaces.list در Chat API یا از URL یک فضا دریافت کنید.

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

    python3 chat_member_list_app.py
    

Google Chat API فهرستی از اعضای فضای انسانی (به استثنای مدیران فضا) را از فضای مشخص شده برمی گرداند.

صفحه بندی را سفارشی کنید یا لیست را فیلتر کنید

برای فهرست کردن عضویت ها، پارامترهای پرس و جوی زیر را برای سفارشی کردن صفحه بندی یا فیلتر کردن عضویت های فهرست شده ارسال کنید:

  • pageSize : حداکثر تعداد عضویت برای بازگشت. ممکن است این سرویس کمتر از این مقدار را برگرداند. اگر نامشخص باشد، حداکثر 100 فاصله برگردانده می شود. حداکثر مقدار 1000 است. مقادیر بالای 1000 به طور خودکار به 1000 تغییر می کند.
  • pageToken : یک نشانه صفحه، دریافت شده از یک تماس قبلی با فاصله لیست. این نشانه را برای بازیابی صفحه بعدی ارائه دهید. هنگام صفحه‌بندی، مقدار فیلتر باید با تماسی که توکن صفحه را ارائه می‌کند، مطابقت داشته باشد. عبور یک مقدار متفاوت ممکن است منجر به نتایج غیرمنتظره شود.
  • filter : یک فیلتر پرس و جو. نیاز به احراز هویت کاربر دارد. برای جزئیات درخواست پشتیبانی شده، به روش spaces.members.list مراجعه کنید.