با استفاده از منبع MessagePin در API چت، برنامه شما میتواند پیامها را پین کند، پین آنها را بردارد و لیستی از تمام پیامهای پینشده در فضاهای چت گوگل را دریافت کند. پیامهای پینشده در رابط چت برای همه اعضای فضا قابل مشاهده هستند. این API به برنامه شما کمک میکند تا پیامهای پینشده را از طرف یک کاربر مدیریت کند.
برای اطلاعات بیشتر در مورد نحوه پین کردن پیامها در فضاها توسط کاربران، به پین کردن پیامها، فایلها و پیوندها در فضاها و پیامها مراجعه کنید.
پیشنیازها
نود جی اس
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری Node.js را نصب کنید.
- ایجاد اعتبارنامههای OAuth client ID برای یک برنامه دسکتاپ. برای اجرای نمونه در این راهنما، اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
ملاحظات
- شما فقط میتوانید پیامهایی را که از قبل در یک فضا وجود دارند پین کنید. نمیتوانید یک پیام جدید ایجاد کنید و آن را در همان درخواست پین کنید.
- شما نمیتوانید پیامهایی را که فقط برای خودتان قابل مشاهده هستند، پین کنید. برای مثال، نمیتوانید پیامهای خصوصی که از یک برنامه دریافت میکنید را پین کنید.
- هر فضای چت میتواند تا ۱۰۰ پیام پینشده داشته باشد. اگر برنامه شما سعی کند پیام صد و یکم را پین کند، API خطا میدهد.
پین کردن پیام
برای پین کردن یک پیام با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:
- دامنه مجوز
chat.spaces.pinsیاchat.spacesرا مشخص کنید. - تابع
messagePins.createرا فراخوانی کنید. -
parent(نام فضا) را مشخص کنید و نام منبعmessageپیام اصلی را درbodyقرار دهید.
نمونه زیر یک پیام را در یک فاصله پین میکند:
پایتون
- در دایرکتوری کاری خود، فایلی با نام
chat_pin_message.pyایجاد کنید. کد زیر را در
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()در کد، موارد زیر را جایگزین کنید:
در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_pin_message.py
برداشتن سنجاق پیام
برای لغو پین کردن پیام با احراز هویت کاربر ، موارد زیر را در درخواست خود وارد کنید:
- دامنه مجوز
chat.spaces.pinsیاchat.spacesرا مشخص کنید. - پیام تماس
messagePins.delete. -
nameبرابر با نام منبعMessagePinکه قرار است حذف شود، قرار دهید.
نحوهی برداشتن پین از روی پیام به این صورت است:
پایتون
- در دایرکتوری کاری خود، فایلی با نام
chat_unpin_message.pyایجاد کنید. کد زیر را در
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()در کد، موارد زیر را جایگزین کنید:
در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_unpin_message.py
دریافت لیست پیامهای پینشده
برای دریافت لیستی از پیامهای پینشده در فضاهایی که به آنها دسترسی دارید، از احراز هویت کاربر استفاده کنید و موارد زیر را در درخواست خود ارسال کنید:
- یکی از محدودههای خواندن را مشخص کنید:
chat.spaces.pins.readonly،chat.spaces.readonly،chat.spaces.pinsیاchat.spaces. - فراخوانی
messagePins.list. - نام فضای
parentرا برای دریافت پیامهای پینشده مشخص کنید.
نحوهی فهرست کردن پیامهای پینشده به این صورت است:
پایتون
- در دایرکتوری کاری خود، فایلی با نام
chat_list_pinned_messages.pyایجاد کنید. کد زیر را در
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()در کد، به جای
SPACE، شناسهی فضا را ازnameفضا وارد کنید.در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_list_pinned_messages.py
مباحث مرتبط
- یک پیام را قالببندی کنید .
- حذف یک پیام .
- دریافت جزئیات مربوط به یک پیام
- پیامها را در یک فاصله فهرست کنید .
- بهروزرسانی یک پیام
- پیام ارسال کنید .