이 가이드에서는 다음의 Media
리소스에서 upload
메서드를 사용하는 방법을 설명합니다.
Google Chat API를 사용하여 미디어 (파일)를 Google Chat에 업로드한 다음
메시지를 보냅니다.
사용자가 앱에 메시지를 보내면 Google Chat에서
MESSAGE
상호작용 이벤트.
앱에서 수신한 상호작용 이벤트에는 요청 본문인
첨부파일을 포함하여 상호작용 이벤트를 나타내는 JSON 페이로드입니다. 이
첨부파일의 데이터는
첨부파일이 올바른지 여부에 따라
Drive에 저장된 파일 (로컬 파일)일 수 있습니다. 이
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 클라이언트 라이브러리를 참조하세요.
- <ph type="x-smartling-placeholder"></ph>
데스크톱 애플리케이션용 OAuth 클라이언트 ID 사용자 인증 정보 만들기 이 실습에서 샘플을 실행하려면
가이드에서 사용자 인증 정보를
client_secrets.json
이라는 JSON 파일로 로컬 디렉터리에 저장합니다
- <ph type="x-smartling-placeholder"></ph> 사용자 인증을 지원하는 승인 범위를 선택합니다.
첨부파일로 업로드
미디어를 업로드하고 메시지에 첨부하려면 요청::
chat.messages.create
또는chat.messages
승인 범위를 지정합니다.- 다음 Google Chat 메서드를 호출합니다.
<ph type="x-smartling-placeholder">
- </ph>
- 파일을 업로드하려면
upload
메서드 (Media
리소스에서)parent
을 파일을 호스팅하는 스페이스의 스페이스 이름으로 설정합니다.body
(요청 본문)에서filename
을 업로드된 파일을 첨부해 주세요.media_body
를 업로드할 파일의 인스턴스로 설정합니다.
- 업로드된 파일이 첨부된 메시지를 만들려면
create
메서드 에Messages
리소스.- 다음을 호출하여
attachment
를 응답으로 설정합니다.upload
메서드 에Media
리소스.attachment
필드는 목록을 허용합니다.
- 다음을 호출하여
- 파일을 업로드하려면
다음 예에서는 PNG 이미지 파일을 업로드하여 메시지에 첨부합니다.
Python
- 작업 디렉터리에서
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
제한사항 및 고려사항
파일을 업로드하고 메일에 첨부할 때 다음 사항에 유의하세요. 한도 및 고려사항:
- 업로드 가능한 파일 크기는 최대 200MB입니다.
- 일부 파일 형식은 지원되지 않으므로 업로드할 수 없습니다. 자세한 내용은 Google Chat에서 차단되는 파일 형식:
- 메시지는 액세서리 위젯입니다.