Bu belgede, kimliği doğrulanmış kullanıcının erişebildiği mesajları aramak için Google Chat API'nin Message kaynağında search yönteminin nasıl kullanılacağı açıklanmaktadır.
Kullanıcı kimlik doğrulaması ile kullanıcının katıldığı tüm görüşmelerde veya belirli bir görüşmede ileti arayabilirsiniz. Örneğin, belirli anahtar kelimeler içeren, kullanıcıdan bahseden, okunmamış veya ek içeren iletileri arayabilirsiniz.
Chat API'de Chat mesajı, Message kaynağı ile temsil edilir.
Chat kullanıcıları yalnızca metin içeren mesajlar gönderebilirken Chat uygulamaları, statik veya etkileşimli kullanıcı arayüzleri görüntüleme, kullanıcılardan bilgi toplama ve mesajları gizli olarak iletme gibi birçok başka mesajlaşma özelliğini kullanabilir. Chat API'de kullanılabilen mesajlaşma özellikleri hakkında daha fazla bilgi edinmek için Google Chat mesajlarına genel bakış başlıklı makaleyi inceleyin.
Ön koşullar
Node.js
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Chat uygulamanız için ad, simge ve açıklama belirterek Google Chat API'yi etkinleştirin ve yapılandırın.
- Node.js Cloud İstemci Kitaplığı'nı yükleyin.
- Yetkilendirme kapsamı seçin.
- Google Chat alanı. Google Chat API'yi kullanarak alan oluşturmak için Alan oluşturma başlıklı makaleyi inceleyin. Chat'te oluşturmak için Yardım Merkezi belgelerini ziyaret edin.
Python
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Chat uygulamanız için ad, simge ve açıklama belirterek Google Chat API'yi etkinleştirin ve yapılandırın.
- Python Cloud İstemci Kitaplığı'nı yükleyin.
- Yetkilendirme kapsamı seçin.
- Google Chat alanı. Google Chat API'yi kullanarak alan oluşturmak için Alan oluşturma başlıklı makaleyi inceleyin. Chat'te oluşturmak için Yardım Merkezi belgelerini ziyaret edin.
Java
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Chat uygulamanız için ad, simge ve açıklama belirterek Google Chat API'yi etkinleştirin ve yapılandırın.
- Java Cloud İstemci Kitaplığı'nı yükleyin.
- Yetkilendirme kapsamı seçin.
- Google Chat alanı. Google Chat API'yi kullanarak alan oluşturmak için Alan oluşturma başlıklı makaleyi inceleyin. Chat'te oluşturmak için Yardım Merkezi belgelerini ziyaret edin.
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Chat uygulamanız için ad, simge ve açıklama belirterek Google Chat API'yi etkinleştirin ve yapılandırın.
- Bağımsız bir Apps Komut Dosyası projesi oluşturun ve Gelişmiş Chat Hizmeti'ni etkinleştirin.
- Yetkilendirme kapsamı seçin.
- Google Chat alanı. Google Chat API'yi kullanarak alan oluşturmak için Alan oluşturma başlıklı makaleyi inceleyin. Chat'te oluşturmak için Yardım Merkezi belgelerini ziyaret edin.
İleti ara
Kullanıcı kimlik doğrulaması içeren iletileri aramak için isteğinizde aşağıdakileri iletin:
chat.messages.readonlyveyachat.messagesyetkilendirme kapsamını belirtin.SearchMessagesyöntemini çağırın.Kullanıcının üyesi olduğu tüm alanlarda arama yapmak için
parent'ıspaces/-olarak ayarlayın. Başka bir değer kullanmak hataya neden olur.filteralanında bir arama sorgusu dizesi belirtin. Sorgu anahtar kelimeler ve filtreler içerebilir.
Aşağıdaki kod örneği, "tasks" anahtar kelimesini içeren okunmamış iletileri arar:
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 Komut Dosyası
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);
}
}
Arama filtrelerini ve operatörlerini kullanma
filter alanındaki anahtar kelimeleri, alanları ve işlevleri kullanarak arama sonuçlarınızı daraltabilirsiniz. Daha fazla bilgi için SearchMessagesRequest konusuna bakın.
Anahtar kelimeye göre arama
Belirli bir metni içeren iletileri aramak için anahtar kelimeleri girin. Örneğin, bekleyen raporları aramak için pending reports kullanın.
Alana göre arama
Sonuçları belirli ileti veya alan alanlarına göre filtreleyebilirsiniz. Örneğin:
create_time: İletinin oluşturulma zamanına göre filtreleyin. Örnek:create_time > "2023-01-01T00:00:00Z"sender.name: Gönderenin kaynak adına göre filtreleme yapar. Örnek:sender.name = "users/1234567890"space.name: Aramayı belirli bir alanla sınırlandırın. Örnek:space.name = "spaces/ABCDEFGH"space.display_name: Alanları, görünen adlarının kısmi eşleşmesine göre filtreleyin. Sonuçlar, en iyi beş alan eşleşmesiyle sınırlıdır. Örnek:space.display_name:Projectattachment: Eklerin varlığını kontrol edin. Örnek:attachment:*annotations.user_mentions.user.name: Bahsetmelere göre filtreleyin. Örnek:annotations.user_mentions.user.name:"users/me"
İşlevleri kullanarak arama yapma
Gelişmiş filtreleme, aşağıdaki işlevler aracılığıyla kullanılabilir:
has_link: En az bir köprü içeren mesajları döndürür.is_unread: Kullanıcı tarafından okunmamış iletileri döndürür.
Farklı alanlarda yalnızca AND operatörleri desteklenir. Örneğin:
sender.name = "users/me" AND is_unread().
İlgili konular
- İletileri biçimlendirme
- İletileri silme
- İleti hakkında ayrıntılı bilgi edinme.
- Alanımdaki mesajları listele.
- Mesaj güncelleme
- Mesaj gönderin.