Dokumen ini menjelaskan cara menggunakan metode
search
pada resource Message Google Chat API untuk menelusuri pesan yang dapat diakses oleh pengguna yang diautentikasi.
Dengan autentikasi pengguna, Anda dapat menelusuri pesan di semua percakapan yang diikuti pengguna, atau dalam percakapan tertentu. Misalnya, Anda dapat menelusuri pesan yang berisi kata kunci tertentu, menyebut pengguna, belum dibaca, atau memiliki lampiran.
Di Chat API, pesan Chat direpresentasikan oleh
Message resource.
Meskipun pengguna Chat hanya dapat mengirim pesan yang berisi teks, aplikasi Chat dapat menggunakan banyak fitur pesan lainnya, termasuk menampilkan antarmuka pengguna statis atau interaktif, mengumpulkan informasi dari pengguna, dan mengirimkan pesan secara pribadi. Untuk mempelajari lebih lanjut fitur pesan yang tersedia untuk Chat API, lihat Ringkasan pesan Google Chat.
Prasyarat
Node.js
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasi Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Instal Library Klien Cloud Node.js.
- Pilih cakupan otorisasi.
- Ruang Google Chat. Untuk membuatnya menggunakan Google Chat API, lihat Membuat ruang. Untuk membuatnya di Chat, buka dokumentasi Pusat Bantuan.
Python
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasi Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Instal Python Cloud Client Library.
- Pilih cakupan otorisasi.
- Ruang Google Chat. Untuk membuatnya menggunakan Google Chat API, lihat Membuat ruang. Untuk membuatnya di Chat, buka dokumentasi Pusat Bantuan.
Java
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasi Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Instal Java Cloud Client Library.
- Pilih cakupan otorisasi.
- Ruang Google Chat. Untuk membuatnya menggunakan Google Chat API, lihat Membuat ruang. Untuk membuatnya di Chat, buka dokumentasi Pusat Bantuan.
Apps Script
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasi Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Buat project Apps Script mandiri, lalu aktifkan Advanced Chat Service.
- Pilih cakupan otorisasi.
- Ruang Google Chat. Untuk membuatnya menggunakan Google Chat API, lihat Membuat ruang. Untuk membuatnya di Chat, buka dokumentasi Pusat Bantuan.
Menelusuri pesan
Untuk menelusuri pesan dengan autentikasi pengguna, teruskan berikut ini dalam permintaan Anda:
Tentukan cakupan otorisasi
chat.messages.readonlyatauchat.messages.Panggil metode
SearchMessages.Setel
parentkespaces/-untuk menelusuri semua ruang tempat pengguna menjadi anggotanya. Menggunakan nilai lain akan menghasilkan error.Di kolom
filter, tentukan string kueri penelusuran. Kueri dapat menyertakan kata kunci dan filter.
Contoh kode berikut menelusuri pesan belum dibaca yang berisi kata kunci "tugas":
Node.js
/**
* Searches for messages in Google Chat.
* @param {string} filter The search query.
*/
async function searchMessages(filter) {
const {ChatServiceClient} = require('@google-apps/chat').v1;
// Instantiates a client
const chatClient = new ChatServiceClient();
// See https://github.com/googleworkspace/node-samples/blob/main/chat/client-libraries/cloud/authentication-utils.js
// for an example of how to authenticate the request.
// Construct request
const request = {
// Parent must be "spaces/-" to search across all spaces.
parent: 'spaces/-',
filter: filter,
};
// Run request
const iterable = await chatClient.searchMessagesAsync(request);
for await (const response of iterable) {
console.log(response);
}
}
searchMessages('tasks AND is_unread()');
Python
from google.apps import chat_v1
def search_messages(filter_str: str):
"""
Searches for messages in Google Chat.
Args:
filter_str: The search query.
"""
# Create a client
client = chat_v1.ChatServiceClient()
# See https://github.com/googleworkspace/python-samples/blob/main/chat/client-libraries/cloud/authentication_utils.py
# for an example of how to authenticate the request.
# Initialize request argument
request = chat_v1.SearchMessagesRequest(
# Parent must be "spaces/-" to search across all spaces.
parent="spaces/-",
filter=filter_str
)
# Make the request
page_result = client.search_messages(request=request)
# Handle the response
for response in page_result:
print(response)
search_messages('tasks AND is_unread()')
Java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.SearchMessageResult;
import com.google.chat.v1.SearchMessagesRequest;
public class SearchMessages {
public static void main(String[] args) throws Exception {
searchMessages("tasks AND is_unread()");
}
/**
* Searches for messages in Google Chat.
*
* @param filter The search query.
*/
public static void searchMessages(String filter) throws Exception {
// See https://github.com/googleworkspace/java-samples/blob/main/chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/AuthenticationUtils.java
// for an example of how to authenticate the request.
try (ChatServiceClient chatServiceClient = ChatServiceClient.create()) {
SearchMessagesRequest request =
SearchMessagesRequest.newBuilder()
.setParent("spaces/-")
.setFilter(filter)
.build();
for (SearchMessageResult result : chatServiceClient.searchMessages(request).iterateAll()) {
System.out.println(result.getMessage().getText());
}
}
}
}
Apps Script
javascript
/**
* Searches for messages in Google Chat.
*/
function searchMessages() {
const filter = 'tasks AND is_unread()';
const url = 'https://chat.googleapis.com/v1/spaces/-/messages:search';
const request_payload = {
filter: filter
};
try {
const response = UrlFetchApp.fetch(url, {
method: 'post',
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
contentType: 'application/json',
payload: JSON.stringify(request_payload)
});
if (response.results) {
for (const result of response.results) {
console.log('Message text: %s', result.message.text);
}
} else {
console.log('No messages found.');
}
} catch (err) {
console.log('Failed to search messages with error: %s', err.message);
}
}
Menggunakan filter dan operator penelusuran
Anda dapat mempertajam hasil penelusuran dengan menggunakan kata kunci, kolom, dan fungsi di
kolom filter. Untuk informasi selengkapnya, lihat SearchMessagesRequest.
Cari menggunakan kata kunci
Untuk menelusuri pesan yang berisi teks tertentu, masukkan kata kuncinya. Misalnya, untuk menelusuri laporan yang tertunda, gunakan pending reports.
Menelusuri menurut kolom
Anda dapat memfilter hasil menurut kolom pesan atau ruang tertentu. Contoh:
create_time: Memfilter menurut waktu pesan dibuat. Contoh:create_time > "2023-01-01T00:00:00Z"sender.name: Memfilter berdasarkan nama resource pengirim. Contoh:sender.name = "users/1234567890"space.name: Membatasi penelusuran ke ruang tertentu. Contoh:space.name = "spaces/ABCDEFGH"space.display_name: Memfilter ruang berdasarkan kecocokan parsial dari nama tampilannya. Hasil dibatasi hingga lima kecocokan ruang teratas. Contoh:space.display_name:Projectattachment: Periksa keberadaan lampiran. Contoh:attachment:*annotations.user_mentions.user.name: Memfilter menurut sebutan. Contoh:annotations.user_mentions.user.name:"users/me"
Menelusuri menggunakan fungsi
Pemfilteran lanjutan tersedia melalui fungsi berikut:
has_link: Menampilkan pesan yang berisi setidaknya satu hyperlink.is_unread: Menampilkan pesan yang belum dibaca oleh pengguna.
Di berbagai kolom, hanya operator AND yang didukung. Contoh: sender.name = "users/me" AND is_unread().
Topik terkait
- Memformat pesan.
- Menghapus pesan.
- Mendapatkan detail tentang pesan.
- Mencantumkan pesan dalam ruang.
- Memperbarui pesan.
- Mengirim pesan.