پین کردن یا برداشتن پین پیام‌ها در فضاهای چت گوگل

با استفاده از منبع MessagePin در API چت، برنامه شما می‌تواند پیام‌ها را پین کند، پین آنها را بردارد و لیستی از تمام پیام‌های پین‌شده در فضاهای چت گوگل را دریافت کند. پیام‌های پین‌شده در رابط چت برای همه اعضای فضا قابل مشاهده هستند. این API به برنامه شما کمک می‌کند تا پیام‌های پین‌شده را از طرف یک کاربر مدیریت کند.

برای اطلاعات بیشتر در مورد نحوه پین ​​کردن پیام‌ها در فضاها توسط کاربران، به پین ​​کردن پیام‌ها، فایل‌ها و پیوندها در فضاها و پیام‌ها مراجعه کنید.

پیش‌نیازها

نود جی اس

ملاحظات

  • شما فقط می‌توانید پیام‌هایی را که از قبل در یک فضا وجود دارند پین کنید. نمی‌توانید یک پیام جدید ایجاد کنید و آن را در همان درخواست پین کنید.
  • شما نمی‌توانید پیام‌هایی را که فقط برای خودتان قابل مشاهده هستند، پین کنید. برای مثال، نمی‌توانید پیام‌های خصوصی که از یک برنامه دریافت می‌کنید را پین کنید.
  • هر فضای چت می‌تواند تا ۱۰۰ پیام پین‌شده داشته باشد. اگر برنامه شما سعی کند پیام صد و یکم را پین کند، API خطا می‌دهد.

پین کردن پیام

برای پین کردن یک پیام با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.spaces.pins یا chat.spaces را مشخص کنید.
  • تابع messagePins.create را فراخوانی کنید.
  • parent (نام فضا) را مشخص کنید و نام منبع message پیام اصلی را در body قرار دهید.

نمونه زیر یک پیام را در یک فاصله پین ​​می‌کند:

پایتون

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then pins a message in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Pin a message.
        result = service.spaces().messagePins().create(
            # The space to pin the message in.
            #
            # Replace SPACE with a space ID or name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to pin.
            body={
                'message': 'spaces/SPACE/messages/MESSAGE'
            }
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، موارد زیر را جایگزین کنید:

    • SPACE : شناسه‌ی name فاصله.
    • MESSAGE : شناسه‌ی name پیام.
  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_pin_message.py

برداشتن سنجاق پیام

برای لغو پین کردن پیام با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:

  • دامنه مجوز chat.spaces.pins یا chat.spaces را مشخص کنید.
  • پیام تماس messagePins.delete .
  • name برابر با نام منبع MessagePin که قرار است حذف شود، قرار دهید.

نحوه‌ی برداشتن پین از روی پیام به این صورت است:

پایتون

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then unpins a message from a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Unpin a message.
        result = service.spaces().messagePins().delete(
            # The resource name of the message pin to delete.
            #
            # Replace SPACE with a space ID or name, and MESSAGE with the message ID.
            name='spaces/SPACE/messagePins/MESSAGE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، موارد زیر را جایگزین کنید:

    • SPACE : شناسه‌ی name فاصله.
    • MESSAGE : شناسه‌ی name پیام.
  4. در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:

    python3 chat_unpin_message.py

دریافت لیست پیام‌های پین‌شده

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

  • یکی از محدوده‌های خواندن را مشخص کنید: chat.spaces.pins.readonly ، chat.spaces.readonly ، chat.spaces.pins یا chat.spaces .
  • فراخوانی messagePins.list .
  • نام فضای parent را برای دریافت پیام‌های پین‌شده مشخص کنید.

نحوه‌ی فهرست کردن پیام‌های پین‌شده به این صورت است:

پایتون

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists pinned messages in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # List pinned messages.
        result = service.spaces().messagePins().list(
            # The space to list pinned messages from.
            #
            # Replace SPACE with a space ID or name.
            parent='spaces/SPACE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. در کد، به جای SPACE ، شناسه‌ی فضا را از name فضا وارد کنید.

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

    python3 chat_list_pinned_messages.py