يشرح هذا الدليل كيفية استخدام طريقة download
على مورد Media
الخاص بـ
Google Chat API لتنزيل الوسائط (ملف) من رسالة في Google Chat.
عندما يرسِل المستخدم رسالة إلى تطبيقك، يرسل Google Chat
حدث تفاعل واحد (MESSAGE
).
يتضمّن حدث التفاعل الذي يتلقّاه تطبيقك نص الطلب، وهو
حمولة JSON التي تمثّل حدث التفاعل، بما في ذلك أي مرفقات تشير رسالة الأشكال البيانية
تختلف البيانات في المرفق بناءً على ما إذا كان المرفق
محتوى تم تحميله (ملف محلي) أو ملف مخزَّن على Drive. تشير رسالة الأشكال البيانية
مرجع Media
يمثل ملفًا تم تحميله إلى Google Chat، مثل الصور والفيديوهات والمستندات.
تشير رسالة الأشكال البيانية
مرجع Attachment
يمثل مثيلاً للوسائط - ملف - مرفق برسالة. Attachment
يتضمن المورد البيانات الوصفية حول المرفق، مثل
ومكان حفظها.
المتطلبات الأساسية
Python
- نشاط تجاري أو مؤسسة حساب Google Workspace لديه إذن بالوصول إلى Google Chat
- إعداد البيئة:
- أنشِئ مشروعًا على Google Cloud.
- ضبط شاشة موافقة OAuth
- تفعيل Google Chat API وضبطه باستخدام اسم ورمزه ووصفه لتطبيق Chat.
- تثبيت بايثون مكتبة برامج Google API
- إنشاء بيانات اعتماد الوصول استنادًا إلى طريقة المصادقة في Google Chat API
الطلب:
- للمصادقة كمستخدم Chat،
إنشاء معرِّف عميل OAuth
بيانات الاعتماد وحفظ بيانات الاعتماد كملف JSON
client_secrets.json
إلى الدليل المحلي. - للمصادقة كتطبيق Chat، اتّبِع الخطوات التالية:
إنشاء حساب خدمة
بيانات الاعتماد وحفظ بيانات الاعتماد كملف JSON
credentials.json
- للمصادقة كمستخدم Chat،
إنشاء معرِّف عميل OAuth
بيانات الاعتماد وحفظ بيانات الاعتماد كملف JSON
- اختر نطاق تفويض استنادًا إلى ما إذا كنت تريد المصادقة كمستخدم أو تطبيق Chat
التنزيل من ملف مرفق
لتنزيل الوسائط من ملف مرفق، أدخِل ما يلي في الطلب:
- باستخدام مصادقة المستخدم، حدِّد
نطاق التفويض
chat.messages.readonly
أوchat.messages
مع مصادقة التطبيقات تحديد نطاق تفويضchat.bot
. - يمكنك استدعاء طرق Google Chat التالية:
- يمكنك الحصول على
attachmentDataRef
من خلال طلب إحدى الطرق التالية:- طريقة
get
في صفحة مرجع واحد (Attachment
) - طريقة
get
أو طريقةlist
في صفحة مرجعMessage
- طريقة
- يمكنك استدعاء طريقة
download
. في صفحة مورد واحد (Media
)، وتحديد التي تم استردادها سابقًا باسمattachmentDataRef.resourceName
media.download.resourceName
- يمكنك الحصول على
في المثال التالي، يتم تنزيل ملف مرفق برسالة:
Python
- في دليل العمل، أنشئ ملفًا باسم
chat_media_and_attachment_download.py
أدرِج الرمز التالي في
chat_media_and_attachment_download.py
:import io from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload # 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"] def main(): ''' Authenticates with Chat API via user credentials, then downloads a file attached to a 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. chat = build('chat', 'v1', credentials=creds) # Download media resource. request = chat.media().download_media( resourceName=RESOURCE_NAME, ) file = io.BytesIO() downloader = MediaIoBaseDownload(file, request) done = False while done is False: status, done = downloader.next_chunk() if status.total_size: print(f'Total size: {status.total_size}') print(f'Download {int(status.progress() * 100)}') if __name__ == '__main__': main()
في الرمز، استبدِل
RESOURCE_NAME
بـattachmentDataRef.resourceName
، والذي يمكنك استرداد أحد الطرق التالية:- طريقة
get
في مرجعAttachment
. - طريقة
get
في مرجعMessage
. - طريقة
list
في مرجعMessage
.
- طريقة
في دليل العمل، أنشئ النموذج وشغِّله:
python3 chat_media_and_attachment_download.py
فإذا نجحت هذه الطريقة، فستُرجع محتوى الملف بتنسيق بايت.
لتنزيل محتوى الملف، اختَر أحد الأساليب التالية:
ننصح باستخدام فئة
MediaIoBaseDownload
في بايثون، وتحتوي على طرق للتنزيل الملف على أقسام وحفظ المحتوى في تدفق إخراج.إذا كان عليك تقديم طلب HTTP يدويًا، عليك استدعاء طريقة
download
حدد جزء الملف الذي تريد تنزيله باستخدام بايت النطاق مع عنوانRange
، مثلاً:Range: bytes=500-999
.
مواضيع ذات صلة
- إذا كانت الرسالة ملف Drive، استخدم Drive API للوصول إلى الملف.
- تحميل الوسائط كمرفق ملف
- تنزيل الوسائط كمرفق ملف
- الحصول على بيانات وصفية حول مرفق رسالة