Z tego przewodnika dowiesz się, jak używać metody get
w zasobie Media
interfejsu Google Chat API, aby uzyskać metadane dotyczące załącznika wiadomości. Odpowiedź jest instancją zasobu Attachment
.
Gdy użytkownik wysyła wiadomość do Twojej aplikacji, Google Chat wysyła zdarzenie interakcji MESSAGE
.
Zdarzenie interakcji odebrane przez aplikację zawiera treść żądania, czyli ładunek JSON reprezentujący zdarzenie interakcji wraz z ewentualnymi załącznikami. Dane w załączniku różnią się w zależności od tego, czy załącznik jest przesłany (plik lokalny) czy przechowywany na Dysku. Zasób Media
reprezentuje plik przesłany do Google Chat, np. obrazy, filmy czy dokumenty.
Zasób Attachment
odpowiada instancji multimediów (pliku) dołączonej do wiadomości. Zasób Attachment
zawiera metadane dotyczące załącznika, np. miejsce jego zapisania.
Wymagania wstępne
Python
- Python 3.6 lub nowszy
- Narzędzie do zarządzania pakietami pip
Najnowsze biblioteki klienta Google dla języka Python. Aby je zainstalować lub zaktualizować, uruchom w interfejsie wiersza poleceń to polecenie:
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji Google Chat.
Autoryzacja aplikacji Google Chat została skonfigurowana. Uzyskanie wiadomości wymaga uwierzytelniania aplikacji z zakresem autoryzacji
chat.bot
.
Pobieranie załącznika do wiadomości
Aby asynchronicznie pobrać metadane załącznika wiadomości w Google Chat, przekaż w żądaniu:
- Określ zakres autoryzacji
chat.bot
. - Wywołaj metodę
get
w zasobieAttachment
. - Przekaż
name
załącznika wiadomości.
Aby uzyskać metadane załącznika wiadomości:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_get_message_attachment.py
. Umieść ten kod w elemencie
chat_get_message_attachment.py
:from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Get a Chat message. result = chat.spaces().messages().attachments().get( # The message to get. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT' ).execute() # Print Chat API's response in your command line interface. print(result)
W kodzie zastąp
spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT
nazwą załącznika do wiadomości.W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_get_message_attachment.py
Chat API zwraca instancję Attachment
, która zawiera szczegółowe informacje o metadanych określonego załącznika do wiadomości.