Panduan ini menjelaskan cara menggunakan metode patch
pada resource Message
di Google Chat API untuk memperbarui pesan teks atau kartu dalam ruang. Perbarui pesan untuk mengubah atribut pesan, seperti isinya, atau konten kartu. Anda juga dapat menambahkan awalan pesan teks ke pesan kartu, atau menambahkan kartu ke pesan teks.
Chat API juga mendukung metode update
, tetapi sebaiknya panggil metode metode patch
karena menggunakan permintaan HTTP PATCH
saat update
menggunakan permintaan HTTP PUT
. Untuk mempelajari lebih lanjut, lihat bagian PATCH
dan PUT
AIP-134.
Resource
Message
merepresentasikan pesan
teks
atau
kartu
di Google Chat. Anda dapat
create
, get
, update
, atau delete
pesan di Google Chat API dengan memanggil
metode yang sesuai. Untuk mempelajari pesan teks dan kartu lebih lanjut, lihat Ringkasan pesan Google Chat.
Prasyarat
Python
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
Library klien Google terbaru untuk Python. Untuk menginstal atau mengupdatenya, jalankan perintah berikut di antarmuka command line Anda:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Aplikasi Chat yang dipublikasikan. Untuk membuat dan memublikasikan aplikasi Chat, lihat Mem-build aplikasi Google Chat.
Otorisasi yang dikonfigurasi untuk aplikasi Chat:
- Memperbarui pesan teks akan mendukung kedua metode autentikasi berikut:
- Autentikasi pengguna, dengan cakupan otorisasi
chat.messages
, dapat memperbarui pesan yang dibuat oleh pengguna tersebut. - Autentikasi aplikasi dengan cakupan otorisasi
chat.bot
dapat memperbarui pesan yang dibuat oleh aplikasi tersebut.
- Autentikasi pengguna, dengan cakupan otorisasi
- Memperbarui pesan kartu memerlukan autentikasi aplikasi dengan cakupan otorisasi
chat.bot
.
- Memperbarui pesan teks akan mendukung kedua metode autentikasi berikut:
Memperbarui SMS, atau menambahkan awalan pesan teks ke pesan kartu, dengan autentikasi pengguna
Untuk memperbarui pesan teks dengan autentikasi pengguna, teruskan hal berikut dalam permintaan Anda:
- Cakupan otorisasi
chat.messages
. name
pesan yang akan diperbarui.updateMask='text'
body
yang menentukan pesan yang diperbarui.
Jika pesan yang diperbarui adalah pesan kartu, pesan teks akan ditambahkan ke pesan kartu (yang akan terus ditampilkan).
Berikut cara memperbarui pesan teks, atau menambahkan awalan pesan teks ke pesan kartu dengan autentikasi pengguna:
Python
- Di direktori kerja, buat file bernama
chat_update_text_message_user.py
. Sertakan kode berikut di
chat_update_text_message_user.py
:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # 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 updates 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) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # 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', updateMask='text', body={'text': 'Updated message!'} ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
Dalam kode, ganti kode berikut:
SPACE
: nama ruang, yang dapat Anda peroleh dari metodespaces.list
di Chat API, atau dari URL ruang.MESSAGE
: nama pesan, yang dapat Anda peroleh dari isi respons yang ditampilkan setelah membuat pesan secara asinkron dengan Chat API, atau dengan nama kustom yang ditetapkan ke pesan saat pembuatan.
Di direktori kerja Anda, build dan jalankan contoh:
python3 chat_update_text_message_user.py
Memperbarui SMS, atau menambahkan awalan pesan teks ke pesan kartu, dengan autentikasi aplikasi
Untuk memperbarui pesan teks dengan autentikasi aplikasi, teruskan hal berikut dalam permintaan Anda:
- Cakupan otorisasi
chat.bot
. name
pesan yang akan diperbarui.updateMask='text'
body
yang menentukan pesan yang diperbarui.
Jika pesan yang diperbarui adalah pesan kartu, pesan teks akan ditambahkan ke pesan kartu (yang terus ditampilkan).
Berikut cara memperbarui pesan teks menjadi SMS, atau menambahkan awalan pesan teks ke pesan kartu dengan autentikasi aplikasi:
Python
- Di direktori kerja, buat file bernama
chat_update_text_message_app.py
. Sertakan kode berikut di
chat_update_text_message_app.py
:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # 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', updateMask='text', body={'text': 'Updated message!'} ).execute() # Print Chat API's response in your command line interface. print(result)
Dalam kode, ganti kode berikut:
SPACE
: nama ruang, yang dapat Anda peroleh dari metodespaces.list
di Chat API, atau dari URL ruang.MESSAGE
: nama pesan, yang dapat Anda peroleh dari isi respons yang ditampilkan setelah membuat pesan secara asinkron dengan Chat API, atau dengan nama kustom yang ditetapkan ke pesan saat pembuatan.
Di direktori kerja Anda, build dan jalankan contoh:
python3 chat_update_text_message_app.py
Memperbarui pesan kartu, atau menambahkan pesan kartu ke SMS
Untuk memperbarui pesan kartu, teruskan hal berikut dalam permintaan Anda:
- Cakupan otorisasi
chat.bot
. Memperbarui pesan kartu memerlukan autentikasi aplikasi. name
pesan yang akan diperbarui.updateMask='cardsV2'
body
yang menentukan pesan yang diperbarui.
Jika pesan yang diperbarui adalah pesan teks, kartu akan ditambahkan ke pesan teks (yang terus ditampilkan). Jika pesan yang diperbarui itu sendiri adalah kartu, kartu yang ditampilkan akan diperbarui.
Berikut cara mengubah pesan menjadi pesan kartu:
Python
- Di direktori kerja, buat file bernama
chat_update_card_message.py
. Sertakan kode berikut di
chat_update_card_message.py
:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # 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', updateMask='cardsV2', body= { 'cardsV2': [{ 'cardId': 'updateCardMessage', 'card': { 'header': { 'title': 'An Updated Card Message!', 'subtitle': 'Updated with Chat REST API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() # Print Chat API's response in your command line interface. print(result)
Dalam kode, ganti kode berikut:
SPACE
: nama ruang, yang dapat Anda peroleh dari metodespaces.list
di Chat API, atau dari URL ruang.MESSAGE
: nama pesan, yang dapat Anda peroleh dari isi respons yang ditampilkan setelah membuat pesan secara asinkron dengan Chat API, atau dengan nama kustom yang ditetapkan ke pesan saat pembuatan.
Di direktori kerja Anda, build dan jalankan contoh:
python3 chat_update_card_message.py
Chat API menampilkan instance
Message
yang menjelaskan pesan yang diperbarui.
Mengupdate pesan dengan beberapa jalur kolom secara bersamaan
Saat pesan diperbarui, Anda dapat memperbarui beberapa jalur kolom pesan sekaligus. Misalnya, dalam permintaan pesan pembaruan, Anda dapat menentukan perubahan pada jalur kolom text
dan cardsv2
secara bersamaan, yang akan memperbarui teks dan kartu pesan. Jika pesan hanya menyertakan teks dan tidak ada kartu, kartu
akan ditambahkan ke pesan. Untuk mengetahui informasi selengkapnya tentang jalur kolom yang didukung, lihat parameter updateMask
.
Untuk mengupdate
text
dan
card
pesan dengan
autentikasi pengguna,
teruskan hal berikut dalam permintaan Anda:
- Cakupan otorisasi
chat.messages
. name
pesan yang akan diperbarui.updateMask
yang menentukan jalur kolom pesan yang akan diperbarui, yang dipisahkan dengan koma:updateMask='text', 'cardsV2'
.body
yang menentukan pesan yang diperbarui, termasuk semua jalur kolom yang diperbarui.
Berikut cara memperbarui jalur kolom text
dan cardsV2
dalam pesan dengan autentikasi pengguna:
Python
- Di direktori kerja, buat file bernama
chat_update_text_message_user.py
. Sertakan kode berikut di
chat_update_text_message_user.py
:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # 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 updates 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) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # 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', updateMask='text,cardsV2', body= {'text': 'Updated message!', 'cardsV2': [{ 'cardId': 'updateCardMessage', 'card': { 'header': { 'title': 'An Updated Card Message!', 'subtitle': 'Updated with Chat REST API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
Dalam kode, ganti kode berikut:
SPACE
: nama ruang, yang dapat Anda peroleh dari metodespaces.list
di Chat API, atau dari URL ruang.MESSAGE
: nama pesan, yang dapat Anda peroleh dari isi respons yang ditampilkan setelah membuat pesan secara asinkron dengan Chat API, atau dengan nama kustom yang ditetapkan ke pesan saat pembuatan.
Di direktori kerja Anda, build dan jalankan contoh:
python3 chat_update_text_message_user.py
Topik terkait
- Memformat pesan.
- Menghapus pesan.
- Mendapatkan detail tentang pesan.
- Mencantumkan pesan dalam ruang.
- Mengirim pesan.