این راهنما نحوه استفاده از روش upload
را در منبع Media
Google Chat API برای آپلود رسانه (فایل) در Google Chat و سپس پیوست آن به پیام توضیح می دهد.
وقتی کاربر پیامی به برنامه شما ارسال میکند، Google Chat یک رویداد تعاملی MESSAGE
ارسال میکند. رویداد تعاملی که توسط برنامه شما دریافت میشود شامل یک بدنه درخواست است، که بار JSON نشاندهنده رویداد تعامل، از جمله هر پیوستی است. بسته به اینکه پیوست محتوای آپلود شده (فایل محلی) یا فایل ذخیره شده در Drive باشد، داده های پیوست متفاوت است. منبع Media
فایلی را نشان میدهد که در چت Google آپلود شده است، مانند تصاویر، ویدیوها و اسناد. منبع Attachment
نمونه ای از رسانه – یک فایل – را نشان می دهد که به یک پیام پیوست شده است. منبع Attachment
شامل فراداده مربوط به پیوست است، مانند محل ذخیره آن.
پیش نیازها
پایتون
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- کتابخانه Google API Client Python را نصب کنید.
- شناسه مشتری OAuth را برای یک برنامه دسکتاپ ایجاد کنید . برای اجرای نمونه در این راهنما، اعتبارنامه ها را به عنوان یک فایل JSON با نام
client_secrets.json
در فهرست محلی خود ذخیره کنید.
- محدوده مجوزی را انتخاب کنید که از احراز هویت کاربر پشتیبانی می کند.
به عنوان پیوست فایل آپلود کنید
برای آپلود رسانه و پیوست کردن آن به پیام، موارد زیر را در درخواست خود ارسال کنید:
- محدوده مجوز
chat.messages.create
یاchat.messages
را مشخص کنید. - با روشهای Google Chat زیر تماس بگیرید:
- برای آپلود فایل، روش
upload
را در منبعMedia
فراخوانی کنید.-
parent
روی نام فضای فضایی که فایل را میزبانی می کند تنظیم کنید. - در
body
(بدنه درخواست)،filename
به نام پیوست فایل آپلود شده تنظیم کنید. -
media_body
به عنوان نمونه ای از فایل برای آپلود تنظیم کنید.
-
- برای ایجاد پیام با فایل آپلود شده پیوست شده، روش
create
را در منبعMessages
فراخوانی کنید.-
attachment
به عنوان پاسخ فراخوانی روشupload
در منبعMedia
تنظیم کنید. فیلدattachment
لیستی را می پذیرد.
-
- برای آپلود فایل، روش
مثال زیر یک فایل تصویری PNG را آپلود می کند و آن را به یک پیام پیوست می کند.
پایتون
- در پوشه کاری خود، فایلی با نام
chat_media_and_attachment_upload.py
ایجاد کنید. کد زیر را در
chat_media_and_attachment_upload.py
قرار دهید:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaFileUpload # 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.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then uploads a file as media, creates a message, and attaches the file to the message. ''' # 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. service = build('chat', 'v1', credentials=creds) # Upload a file to Google Chat. media = MediaFileUpload('test_image.png', mimetype='image/png') # Create a message and attach the uploaded file to it. attachment_uploaded = service.media().upload( # The space to upload the attachment in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The filename of the attachment, including the file extension. body={'filename': 'test_image.png'}, # Media resource of the attachment. media_body=media ).execute() print(attachment_uploaded) # Create a Chat message with attachment. result = service.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Must match the space name that the attachment is uploaded to. parent='spaces/SPACE', # The message to create. body={ 'text': 'Hello, world!', 'attachment': [attachment_uploaded] } ).execute() print(result) if __name__ == '__main__': main()
در کد،
SPACE
با نام فضا برای آپلود پیوست در آن جایگزین کنید، که می توانید آن را از روشspaces.list
در Chat API یا از URL یک فضا دریافت کنید.در پوشه کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_media_and_attachment_upload.py
Chat API یک بدنه پاسخ حاوی attachmentDataRef
را با جزئیات مربوط به فایل آپلود شده برمی گرداند.
محدودیت ها و ملاحظات
همانطور که برای آپلود فایل ها و پیوست کردن آنها به پیام ها آماده می شوید، به این محدودیت ها و ملاحظات توجه کنید:
- شما می توانید اندازه فایل تا 200 مگابایت آپلود کنید.
- برخی از انواع فایل ها پشتیبانی نمی شوند و نمی توان آنها را آپلود کرد. برای جزئیات، انواع فایل مسدود شده در گپ Google را ببینید.
- پیام شما باید ویجت های جانبی را حذف کند.