این راهنما نحوه استفاده از متد search() در منبع Space از API چت گوگل را برای جستجوی فضاهای نامگذاری شده در یک سازمان Google Workspace توضیح میدهد.
منبع Space مکانی را نشان میدهد که افراد و برنامههای چت میتوانند در آن پیام ارسال کنند، فایلها را به اشتراک بگذارند و با یکدیگر همکاری کنند. چندین نوع Space وجود دارد:
- پیامهای مستقیم (DM) مکالماتی بین دو کاربر یا یک کاربر و یک برنامه چت هستند.
- چتهای گروهی، مکالماتی بین سه یا چند کاربر و برنامههای چت هستند.
- فضاهای نامگذاری شده مکانهای پایداری هستند که افراد در آنها پیام میفرستند، فایلها را به اشتراک میگذارند و با یکدیگر همکاری میکنند.
اگر مدیر Google Workspace هستید و میخواهید در تمام فضاهای سازمان خود، از جمله فضاهای خصوصی که به آنها ملحق نشدهاید، جستجو کنید، برای فراخوانی API با امتیازات مدیر ( useAdminAccess=true )، به بخش «جستجو و مدیریت فضاها به عنوان مدیر Google Workspace» مراجعه کنید.
هنگام جستجوی فضاهایی با احراز هویت کاربر بدون امتیازات مدیر، این روش فضاهای نامگذاری شده ( spaceType از SPACE ) را که کاربر احراز هویت شده به آنها دسترسی دارد، مانند فضاهایی که عضو آنها است، در سازمان خود جستجو میکند.
پیشنیازها
نود جی اس
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری Node.js را نصب کنید.
- ایجاد اعتبارنامههای OAuth client ID برای یک برنامه دسکتاپ. برای اجرای نمونه در این راهنما، اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
پایتون
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری پایتون را نصب کنید.
- ایجاد اعتبارنامههای OAuth client ID برای یک برنامه دسکتاپ. برای اجرای نمونه در این راهنما، اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
جاوا
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری جاوا را نصب کنید.
- ایجاد اعتبارنامههای OAuth client ID برای یک برنامه دسکتاپ. برای اجرای نمونه در این راهنما، اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
اسکریپت برنامهها
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- یک پروژه مستقل Apps Script ایجاد کنید و سرویس چت پیشرفته (Advanced Chat Service) را فعال کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
جستجوی فضاهایی با احراز هویت کاربر
برای جستجوی فضاهای خالی در گوگل چت بدون دسترسی ادمین، موارد زیر را در درخواست خود وارد کنید:
- با احراز هویت کاربر ، دامنه مجوز
chat.spaces.readonlyیاchat.spacesرا مشخص کنید. - متد
search()را روی منبعSpaceفراخوانی کنید. -
useAdminAccessرویfalseتنظیم کنید (یا پارامتر را حذف کنید). - پارامترهای
queryجستجو را برای فیلتر کردن نتایج مشخص کنید:-
spaceType = "SPACE"- زمانی کهqueryمشخص شده باشد، مورد نیاز است و تنها مقدار پشتیبانی شدهSPACEاست. -
displayName- فیلتر کردن بر اساس فاصله بین نام نمایش داده شده و استفاده از عملگرHAS(:). برای مثال،displayName:"Project". متن مورد نظر توکنسازی میشود و هر توکن بدون حساسیت به حروف بزرگ و کوچک و به صورت مستقل در هر کجای فضایdisplayNameبه عنوان یک زیررشته با پیشوند تطبیق داده میشود. توجه: وقتیuseAdminAccessبرابر باfalseباشد،displayNameدر کوئری شما برای بازیابی نتایج معنادار مورد نیاز است. در غیر این صورت، متد یک پاسخ خالی برمیگرداند. -
externalUserAllowed- به صورت اختیاری بر اساس اینکه آیا مهمانان خارجی مجاز به حضور در فضا هستند یا خیر (trueیاfalse) فیلتر میکند.
-
- به صورت اختیاری، میتوانید
pageSizeبرای محدود کردن حداکثر تعداد فاصلههای برگردانده شده (تا1000) یاpageTokenبرای بازیابی صفحات بعدی نتایج مشخص کنید. - به صورت اختیاری، برای مرتبسازی نتایج جستجو،
orderByرا مشخص کنید (createTime descیاrelevance desc). توجه:relevance descاز طریق برنامه پیشنمایش توسعهدهندگان Google Workspace در دسترس است.
در فیلدهای مختلف در پرسوجو، فقط عملگرهای AND پشتیبانی میشوند. برای مثال: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true" . در داخل displayName و externalUserAllowed ، اگر میخواهید چندین معیار را مطابقت دهید، عملگرهای OR پشتیبانی میشوند.
مثال زیر فضاهای نامگذاری شدهای را جستجو میکند که شامل "پروژه" در نام نمایشی خود هستند:
نود جی اس
/**
* This sample shows how to search for spaces without administrator privileges.
*
* It relies on the @google-apps/chat npm package.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
const {ChatServiceClient} = require('@google-apps/chat');
const {auth} = require('google-auth-library');
async function main() {
// Create a client
const chatClient = new ChatServiceClient({
authClient: await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.spaces.readonly']
})
});
// Initialize request arguments.
// When useAdminAccess is false, spaceType and displayName are required in query.
const request = {
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
};
// Call the API and iterate over the paginated response
const iterable = chatClient.searchSpacesAsync(request);
for await (const result of iterable) {
console.log('Found space:', result.space.displayName, result.space.name);
}
}
main().catch(console.error);
پایتون
"""
This sample shows how to search for spaces without administrator privileges.
"""
from google.apps import chat_v1
import google.auth
# Read the documentation for more details:
# https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
def search_spaces():
# Create a client
scopes = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
credentials, _ = google.auth.default(scopes=scopes)
client = chat_v1.ChatServiceClient(credentials=credentials)
# Initialize request arguments.
# When use_admin_access is False, space_type and display_name are required in query.
request = chat_v1.SearchSpacesRequest(
query='spaceType = "SPACE" AND displayName:"Project"',
use_admin_access=False
)
# Make the request and iterate over the paginated results.
page_result = client.search_spaces(request)
for result in page_result.results:
print(f"Found space: {result.space.display_name} ({result.space.name})")
if __name__ == "__main__":
search_spaces()
جاوا
/**
* This sample shows how to search for spaces without administrator privileges.
*/
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ChatServiceClient.SearchSpacesPagedResponse;
import com.google.chat.v1.SearchSpacesRequest;
import com.google.chat.v1.SearchSpaceResult;
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
public class SearchSpaces {
public static void main(String[] args) 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 = AuthenticationUtils.createClientWithUserCredentials(
ImmutableList.of("https://www.googleapis.com/auth/chat.spaces.readonly"))) {
SearchSpacesRequest request = SearchSpacesRequest.newBuilder()
.setQuery("spaceType = \"SPACE\" AND displayName:\"Project\"")
.setUseAdminAccess(false)
.build();
SearchSpacesPagedResponse response = chatServiceClient.searchSpaces(request);
for (SearchSpaceResult result : response.iterateAll()) {
System.out.printf("Found space: %s (%s)\n", result.space.getDisplayName(), result.space.getName());
}
}
}
}
اسکریپت برنامهها
/**
* This sample shows how to search for spaces without administrator privileges.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
function searchSpaces() {
try {
// Call the API
// When useAdminAccess is false, spaceType and displayName are required in query.
const response = Chat.Spaces.search({
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
});
if (response.results && response.results.length > 0) {
response.results.forEach(result => {
console.log('Found space: %s (%s)', result.space.displayName, result.space.name);
});
} else {
console.log('No matching spaces found.');
}
} catch (err) {
console.log('Failed to search spaces: ' + err.message);
}
}
API چت، فهرستی صفحهبندیشده از فضاهایی را برمیگرداند که با پرسوجو مطابقت دارند و برای کاربر فراخواننده قابل دسترسی هستند.
مباحث مرتبط
- ایجاد یک فضا
- یک فضا تنظیم کنید
- جزئیات مربوط به یک فضا را دریافت کنید
- فضاهای لیست
- بهروزرسانی یک فضا
- حذف یک فاصله
- به عنوان مدیر Google Workspace، فضاها را جستجو و مدیریت کنید