במדריך הזה מוסבר איך להשתמש ב-method download
במשאב Media
של
ממשק Google Chat API כדי להוריד מדיה (קובץ) מהודעות ב-Google Chat.
כשהמשתמש שולח הודעה לאפליקציה, Google Chat שולח
אירוע אינטראקציה אחד (MESSAGE
).
אירוע האינטראקציה שהאפליקציה מקבלת כולל את גוף הבקשה,
מטען ייעודי (payload) של JSON שמייצג את אירוע האינטראקציה, כולל קבצים מצורפים.
הנתונים שבקובץ המצורף משתנים בהתאם למכשיר
תוכן שהועלה (קובץ מקומי) או שהוא קובץ שמאוחסן ב-Drive.
משאב אחד (Media
)
מייצג קובץ שהועלה ל-Google Chat, כמו תמונות, סרטונים ומסמכים.
משאב אחד (Attachment
)
מייצג מופע של מדיה — קובץ — שמצורף להודעה. Attachment
המשאב כולל את המטא-נתונים על הקובץ המצורף, כמו
שבו הוא נשמר.
דרישות מוקדמות
Python
- עסק או ארגון חשבון Google Workspace עם גישה אל Google Chat.
- Python 3.6 ומעלה
- הכלי לניהול חבילות pip
- ספריות הלקוח העדכניות של Google. כדי להתקין או לעדכן אותם,
מריצים את הפקודה הבאה בממשק שורת הפקודה:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- מגדירים את הסביבה:
- יוצרים פרויקט ב-Google Cloud.
- מגדירים את מסך ההסכמה של OAuth.
- מפעילים ומגדירים את Google Chat API עם שם, הסמל והתיאור של אפליקציית Chat.
- יוצרים פרטי כניסה לגישה בהתאם לאופן שבו רוצים לבצע אימות בבקשת Google Chat API:
- כדי לבצע אימות כמשתמשי Chat:
יצירת מזהה לקוח ב-OAuth
פרטי כניסה ולשמור את פרטי הכניסה כקובץ JSON בשם
client_secrets.json
לספרייה המקומית שלך. - כדי לבצע אימות כאפליקציית Chat: יצירת חשבון שירות פרטי כניסה לחשבון.
- כדי לבצע אימות כמשתמשי Chat:
יצירת מזהה לקוח ב-OAuth
פרטי כניסה ולשמור את פרטי הכניסה כקובץ JSON בשם
- בוחרים את היקף ההרשאה בהתאם למה שרוצים לבצע בו אימות כמשתמשים או אפליקציית Chat.
הורדה מקובץ מצורף
כדי להוריד מדיה מקובץ מצורף, יש להעביר את הדברים הבאים ב בקשה:
- באמצעות אימות משתמש, מציינים את
היקף ההרשאה
chat.messages.readonly
אוchat.messages
. ב- אימות אפליקציות, לציין את היקף ההרשאהchat.bot
. - אפשר להתקשר לשיטות הבאות ב-Google Chat:
- אפשר לקבל
attachmentDataRef
באחת מהשיטות הבאות: - קריאה ל-method
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
, שאפשר לאחזר את אחד בדרכים הבאות:בספריית העבודה, יוצרים ומריצים את הדוגמה:
python3 chat_media_and_attachment_download.py
אם הפעולה בוצעה ללא שגיאות, השיטה הזו מחזירה את תוכן הקובץ כבייטים.
כדי להוריד את תוכן הקובץ, יש לבחור באחת מהשיטות הבאות:
מומלץ להשתמש כיתה אחת (
MediaIoBaseDownload
) ב-Python, שמכילה שיטות להורדה את הקובץ במקטעים ולשמור את תוכנו בזרם פלט.אם צריך לבצע את בקשת ה-HTTP באופן ידני, קוראים ל-method
download
לציין את החלק בקובץ שברצונכם להוריד באמצעות בייט טווח עם הכותרתRange
, לדוגמה:Range: bytes=500-999
.
נושאים קשורים
- אם ההודעה היא קובץ ב-Drive, השתמשו Drive API לקבלת גישה לקובץ.
- העלאת מדיה כקובץ מצורף
- הורדת מדיה כקובץ מצורף
- קבלת מטא-נתונים לגבי קובץ מצורף להודעה