このガイドでは、次の Media
リソースで download
メソッドを使用する方法について説明します。
Google Chat API を使用して、Google Chat のメッセージからメディア(ファイル)をダウンロードする。
ユーザーがアプリにメッセージを送信すると、Google Chat は
MESSAGE
インタラクション イベント。
アプリが受け取るインタラクション イベントには、リクエスト本文が含まれます。これは、
操作イベント(添付ファイルを含む)を表す JSON ペイロード。「
添付ファイルに含まれるデータは、その添付ファイルが
アップロード済みコンテンツ(ローカル ファイル)、ドライブに保存されているファイルなどです。「
Media
リソース
とは、Google Chat にアップロードされるファイル(画像、動画、ドキュメントなど)を表します。
「
Attachment
リソース
メッセージに添付されたメディア(ファイル)のインスタンスを表します。Attachment
リソースには、次のような添付ファイルに関するメタデータが含まれます。
保存されます。
前提条件
Python
- 企業または大企業 以下へのアクセス権を持つ Google Workspace アカウント Google Chat。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- Python Google API クライアント ライブラリ。
- Google Chat API での認証方法に基づいてアクセス認証情報を作成する
request:
<ph type="x-smartling-placeholder">
- </ph>
- Chat ユーザーとして認証するには、
OAuth クライアント ID を作成する
認証情報を JSON ファイルとして保存し、
client_secrets.json
をローカル ディレクトリに移動します。 - Chat 用アプリとして認証するには、
サービス アカウントの作成
認証情報を JSON ファイルとして保存し、
credentials.json
。
- Chat ユーザーとして認証するには、
OAuth クライアント ID を作成する
認証情報を JSON ファイルとして保存し、
- <ph type="x-smartling-placeholder"></ph> ユーザーとして認証するか、ユーザーとして認証するかに基づいて、承認スコープを選択します。 Chat アプリ。
添付ファイルからダウンロードする
添付ファイルからメディアをダウンロードするには、 request:
- ユーザー認証を使用する場合は、
承認スコープは
chat.messages.readonly
またはchat.messages
です。あり アプリの認証、chat.bot
承認スコープを指定します。 - 次の Google Chat メソッドを呼び出します。
<ph type="x-smartling-placeholder">
- </ph>
- 次のいずれかのメソッドを呼び出して、
attachmentDataRef
を取得します。 <ph type="x-smartling-placeholder">- </ph>
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
成功すると、このメソッドはファイルの内容をバイトとして返します。
ファイルの内容をダウンロードするには、次のいずれかの方法を選択します。
「新規顧客の獲得」目標を ダウンロードするメソッドを含む Python の
MediaIoBaseDownload
クラス ファイルをセクションに分割し、その内容を出力ストリームに保存します。HTTP リクエストを手動で送信する必要がある場合は、
download
メソッドを呼び出して [ バイト 範囲をRange
ヘッダーに置き換えます(例:Range: bytes=500-999
)。
関連トピック
- メールがドライブ ファイルの場合は、 Drive API を使用してファイルにアクセスできるようにする。
- メディアを添付ファイルとしてアップロードする
- メディアを添付ファイルとしてダウンロードする
- メッセージの添付ファイルに関するメタデータを取得する