این راهنما نحوه استفاده از روش updateSpaceReadState
را در منبع SpaceReadState
در Google Chat API برای علامتگذاری فضاها به عنوان خواندهشده یا خوانده نشده توضیح میدهد.
منبع SpaceReadState
یک منبع تکی است که جزئیات مربوط به آخرین پیام خوانده شده کاربر مشخص شده را در فضای چت Google نشان می دهد.
پیش نیازها
پایتون
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- کتابخانه Google API Client Python را نصب کنید.
- شناسه مشتری OAuth را برای یک برنامه دسکتاپ ایجاد کنید . برای اجرای نمونه در این راهنما، اعتبارنامه ها را به عنوان یک فایل JSON با نام
client_secrets.json
در فهرست محلی خود ذخیره کنید.
- محدوده مجوزی را انتخاب کنید که از احراز هویت کاربر پشتیبانی می کند.
Node.js
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- Node.js Google API Client Library را نصب کنید.
- شناسه مشتری OAuth را برای یک برنامه دسکتاپ ایجاد کنید . برای اجرای نمونه در این راهنما، اعتبارنامه ها را به عنوان یک فایل JSON با نام
client_secrets.json
در فهرست محلی خود ذخیره کنید.
- محدوده مجوزی را انتخاب کنید که از احراز هویت کاربر پشتیبانی می کند.
اسکریپت برنامه ها
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- یک پروژه Apps Script مستقل ایجاد کنید و سرویس گفتگوی پیشرفته را روشن کنید.
- محدوده مجوزی را انتخاب کنید که از احراز هویت کاربر پشتیبانی می کند.
وضعیت خواندن فضای کاربر تماس گیرنده را به روز کنید
برای بهروزرسانی وضعیت خواندن کاربر در یک فاصله، موارد زیر را در درخواست خود بگنجانید:
- محدوده مجوز
chat.users.readstate
را مشخص کنید. - متد
updateSpaceReadState
را در منبعSpaceReadState
فراخوانی کنید. -
name
وضعیت خواندن فاصله را برای دریافت ارسال کنید، که شامل شناسه کاربری یا نام مستعار و شناسه فاصله است. دریافت وضعیت خواندن فضا فقط از دریافت وضعیت خواندن کاربر تماسگیرنده پشتیبانی میکند که با تنظیم یکی از موارد زیر میتوان آن را تعیین کرد:- نام مستعار
me
برای مثال،users/me/spaces/ SPACE /spaceReadState
. - آدرس ایمیل کاربر تماس گیرنده Workspace. به عنوان مثال،
users/user@example.com/spaces/ SPACE /spaceReadState
. - شناسه کاربری کاربر تماس گیرنده. به عنوان مثال،
users/ USER /spaces/ SPACE /spaceReadState
.
- نام مستعار
-
updateMask
را بفرستید، که جنبههای حالت خواندن فضا را برای بهروزرسانی مشخص میکند، که از مسیرهای فیلد زیر پشتیبانی میکند:-
lastReadTime
: زمانی که وضعیت خواندن فضای کاربر به روز شد. معمولاً این با مهر زمانی آخرین پیام خوانده شده یا مهر زمانی مشخص شده توسط کاربر برای علامت گذاری آخرین موقعیت خوانده شده در یک فاصله مطابقت دارد. وقتیlastReadTime
قبل از زمان ایجاد آخرین پیام باشد، فضا به صورت خوانده نشده در UI ظاهر می شود. برای علامتگذاری فضا بهعنوان خواندهشده،lastReadTime
روی هر مقدار دیرتر (بزرگتر) از زمان ایجاد آخرین پیام تنظیم کنید.lastReadTime
مجبور می شود با آخرین زمان ایجاد پیام مطابقت داشته باشد. توجه داشته باشید که وضعیت خواندن فاصله فقط بر وضعیت خواندن پیامهایی که در مکالمه سطح بالای فضا قابل مشاهده هستند تأثیر میگذارد. پاسخهای موجود در رشتهها تحت تأثیر این مُهر زمانی قرار نمیگیرند، و در عوض به وضعیت خواندن رشته متکی هستند.
-
مثال زیر وضعیت خواندن فضای کاربر تماس گیرنده را به روز می کند:
پایتون
- در پوشه کاری خود، فایلی با نام
chat_spaceReadState_update.py
ایجاد کنید. کد زیر را در
chat_spaceReadState_update.py
قرار دهید:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # 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.users.readstate"] def main(): ''' Authenticates with Chat API via user credentials, then updates the space read state for the calling user. ''' # 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) # Use the service endpoint to call Chat API. result = chat.users().spaces().updateSpaceReadState( # The space read state to update. # # Replace USER with the calling user's ID, Workspace email, # or the alias me. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. name='users/me/spaces/SPACE/spaceReadState', updateMask='lastReadTime', body={'lastReadTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z'} ).execute() # Prints the API's response. print(result) if __name__ == '__main__': main()
در کد زیر را جایگزین کنید:
-
SPACE
: نام فضایی است که می توانید از روشspaces.list
در Chat API یا از URL یک فضا دریافت کنید.
-
در پوشه کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_spaceReadState_update.py
Node.js
- در پوشه کاری خود، یک فایل با نام
chat_spaceReadState_update.js
ایجاد کنید. کد زیر را در
chat_spaceReadState_update
قرار دهید:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @return {!Promise<!Object>} */ async function updateSpaceReadState() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.users.readstate', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.users.spaces.updateSpaceReadState({ /** * The space read state to update. * * Replace USER with the calling user's ID, Workspace email, * or the alias me. * * Replace SPACE with a space name. * Obtain the space name from the spaces resource of Chat API, * or from a space's URL. */ name: 'users/me/spaces/SPACE/spaceReadState', updateMask: 'lastReadTime', requestBody: { lastReadTime: '{datetime.datetime(2000, 1, 3).isoformat()}Z' } }); } /** * Use the service endpoint to call Chat API. */ getSpaceReadState().then(console.log);
در کد زیر را جایگزین کنید:
-
SPACE
: نام فضایی است که می توانید از روشspaces.list
در Chat API یا از URL یک فضا دریافت کنید.
-
در پوشه کاری خود، نمونه را بسازید و اجرا کنید:
node chat_spaceReadState_update.js
اسکریپت برنامه ها
این مثال Chat API را با استفاده از Advanced Chat Service فراخوانی میکند.
دامنه مجوز
chat.users.readstate
را به فایلappsscript.json
پروژه Apps Script اضافه کنید:"oauthScopes": [ "https://www.googleapis.com/auth/chat.users.readstate" ]
تابعی مانند این را به کد پروژه Apps Script اضافه کنید:
/** * Authenticates with Chat API via user credentials, * then updates the space read state for the calling user. * @param {string} spaceReadStateName The resource name of the space read state. */ function updateSpaceReadState(spaceReadStateName) { try { const time = new Date('January 1, 2000')).toJSON(); const body = {'lastReadTime': time}; Chat.Users.Spaces.updateSpaceReadState(spaceReadStateName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to update read state with error %s', err.message); } }
Google Chat API وضعیت خواندن فضای مشخص شده را بهروزرسانی میکند و نمونهای از منبع SpaceReadState
را برمیگرداند.
موضوعات مرتبط
- وضعیت خواندن فضای کاربر تماس گیرنده را دریافت کنید .
- وضعیت خواندن رشته کاربر تماسگیرنده را دریافت کنید .