این صفحه رویدادهای چتی را شرح میدهد که یک برنامه چت میتواند با استفاده از Google Workspace Events API در آنها مشترک شود. پس از اینکه تصمیم گرفتید به چه نوع رویدادهایی نیاز دارید، برای شروع دریافت رویدادها از چت، یک اشتراک ایجاد کنید .
علاوه بر اشتراک در رویدادها، میتوانید با فراخوانی API چت گوگل، رویدادها را جستجو کنید. فراخوانی API چت به شما امکان میدهد رویدادها را به صورت دورهای بازیابی کنید، یا رویدادهایی را که ممکن است به دلیل قطعی اشتراک از دست داده باشید، دریافت کنید. برای کسب اطلاعات در مورد روشهای دریافت و پاسخ به رویدادهای چت، به بخش «کار با رویدادها از چت» در مستندات چت مراجعه کنید.
رویدادهای چت پشتیبانی شده
اشتراکهای Google Workspace به شما امکان میدهند رویدادهای مربوط به انواع تغییرات زیر را در Chat دریافت کنید:
- پیامهای جدید، بهروزرسانیشده یا حذفشده در این فضا.
- واکنشهای جدید یا حذفشده به یک پیام.
- اعضای جدید، بهروزرسانیشده یا حذفشده در این فضا.
- تغییرات در فضایی که در آن مشترک شدهاید، مانند بهروزرسانی نام یا توضیحات فضا.
- تغییرات در دسترس بودن کاربر.
- تغییرات در spaceReadState یا threadReadState کاربر.
منابعی که میتوانید برای رویدادها رصد کنید
برای دریافت رویدادها، شما یک منبع چت را برای نظارت مشخص میکنید که منبع هدف اشتراک نامیده میشود.
رابط برنامهنویسی کاربردی رویدادهای فضای کاری گوگل (Google Workspace Events API) از منابع هدف زیر برای چت پشتیبانی میکند:
| منبع هدف | قالب | محدودیتها |
|---|---|---|
| فضا | که در آن SPACE شناسه در نام منبع مربوط به منبع | کاربر چت یا برنامه چتی که اشتراک را تأیید میکند، باید از طریق Google Workspace یا حساب گوگل خود عضو این فضا باشد. پشتیبانی میکند از: |
| تمام فضاهای یک کاربر | | این اشتراک فقط رویدادهای مربوط به فضاهایی را دریافت میکند که کاربر از طریق Google Workspace یا حساب Google خود در آنها عضو است. فقط از احراز هویت کاربر پشتیبانی میکند. |
| کاربر | که در آن USER شناسه در نام منبع مربوط به منبع | این اشتراک فقط رویدادهای مربوط به کاربری که اشتراک را تأیید کرده است را دریافت میکند. یک کاربر نمیتواند از طرف سایر کاربران اشتراک را تأیید کند. فقط از احراز هویت کاربر پشتیبانی میکند. |
| مشتری (پیشنمایش توسعهدهنده ) | که در آن CUSTOMER شناسه مشتری است. همچنین میتوانید از نام مستعار | این اشتراک، رویدادهای مربوط به همه فضاها و کاربران مدیریتشده توسط دامنه مشتری را دریافت میکند. فقط از احراز هویت برنامه با تأیید مدیر پشتیبانی میکند. |
انواع رویداد برای ایجاد اشتراکها
هنگام ایجاد اشتراک، از فیلد eventTypes[] برای مشخص کردن انواع رویدادهایی که میخواهید دریافت کنید، استفاده کنید. انواع رویدادها طبق مشخصات CloudEvents قالببندی میشوند google.workspace. APPLICATION . RESOURCE . VERSION . ACTION
برای مثال، برای دریافت رویدادهای مربوط به پیوستن کاربران به یک فضای چت، فضا را به عنوان منبع هدف و نوع رویداد را google.workspace.chat.membership.v1.created مشخص کنید. برای دریافت رویدادهای مربوط به پیوستن یک کاربر خاص به هر فضایی، کاربر را به عنوان منبع هدف و نوع رویداد را google.workspace.chat.membership.v1.created مشخص کنید. برای کسب اطلاعات بیشتر در مورد نحوه عملکرد رویدادها، به ساختار رویدادهای Google Workspace مراجعه کنید.
جدول زیر انواع رویدادهایی را که برای اشتراک در فضاها و اشتراک در کاربران پشتیبانی میشوند، نشان میدهد. برای کسب اطلاعات در مورد استثنائات مربوط به آنچه یک رویداد را فعال میکند، به محدودیتها مراجعه کنید.
| نوع رویداد | قالب | دادههای منابع | ||
|---|---|---|---|---|
| اشتراک در فضاها | ||||
| پیامی منتشر میشود. | | | ||
| یک پیام بهروزرسانی میشود. | | | ||
| یک پیام حذف میشود. | | | ||
| واکنشی ایجاد میشود. | | | ||
| یک واکنش حذف میشود. | | | ||
| یک عضو به فضا اضافه میشود. | | | ||
| یک عضو در این فضا بهروزرسانی میشود. | | | ||
| یک عضو از فضا حذف میشود. | | | ||
| فضا بهروز میشود. | | | ||
| فاصله حذف میشود. | | | ||
| اشتراک برای کاربران | ||||
| کاربر عضو یک فضا میشود. همه اعضای جدید رویدادها را فعال نمیکنند. برای جزئیات بیشتر، به محدودیتها مراجعه کنید. | | | ||
| عضویت کاربر در یک فضا بهروزرسانی میشود. | | | ||
| کاربر به عنوان عضو مستقیم یک فاصله حذف میشود. | | | ||
| وضعیت خواندن فضای کاربر بهروزرسانی میشود. | | | ||
| وضعیت خواندن نخ کاربر بهروزرسانی میشود. | | | ||
| اشتراک برای مشتریان (پیشنمایش توسعهدهندگان ) | ||||
| یک رویداد برای هر فضا، پیام، واکنش، عضویت یا وضعیت خواندن کاربر در سازمان Google Workspace شما رخ میدهد. | از همه انواع رویدادهای ذکر شده برای اشتراکهای فضا و کاربر پشتیبانی میکند. | بستگی به نوع رویداد دارد (برای مثال، | ||
انواع رویدادهای دستهای (فقط خروجی)
علاوه بر دریافت انواع رویدادهایی که در آنها مشترک میشوید، برنامه چت شما ممکن است رویدادهای دستهای را نیز دریافت کند. یک رویداد دستهای رویدادی است که نشاندهنده رویدادهای زیادی از یک نوع است که در یک بازه زمانی کوتاه رخ میدهند. محتوای یک رویداد دستهای شامل لیستی از تمام منابع تغییر یافته است.
برای مثال، اگر یک کاربر همزمان 20 کاربر را به یک فضا اضافه کند، برنامه چت شما ممکن است یک رویداد دستهای ( google.workspace.chat.membership.v1.batchCreated ) دریافت کند. محتوای رویداد شامل لیستی از تمام منابع Membership جدید است که هنگام اضافه کردن اعضا به فضا توسط کاربر ایجاد شدهاند.
شما برای هر نوع رویدادی که در آن مشترک شوید، یک رویداد دستهای دریافت میکنید، بنابراین هنگام ایجاد اشتراک نیازی به مشخص کردن رویدادهای دستهای ندارید. برای مثال، اگر در واکنشهای جدید ( google.workspace.chat.reaction.v1.created ) مشترک شوید، برنامه چت شما به طور خودکار برای دریافت رویدادهای واکنش دستهای ( google.workspace.chat.reaction.v1.batchCreated ) پیکربندی میشود.
جدول زیر رویدادهای دستهای ممکن برای یک اشتراک را نشان میدهد:
| نوع رویداد دستهای | قالب |
|---|---|
| پیامهای متعددی منتشر میشود. | |
| چندین پیام بهروزرسانی میشوند. | |
| چندین پیام حذف شده است. | |
| واکنشهای چندگانه ایجاد میشوند. | |
| واکنشهای چندگانه حذف میشوند. | |
| چندین عضو به فضای مشترک اضافه شدهاند، یا کاربر مشترک به چندین فضا اضافه شده است. | |
| عضویتهای چندگانه در فضای مشترک یا برای کاربر مشترک بهروزرسانی میشوند. | |
| چندین عضو از فضای مشترک حذف شدهاند، یا کاربر مشترک از چندین فضا حذف شده است. | |
| این فضا بهروزرسانیهای متعددی دارد. | |
| چندین حالت خواندن فاصله برای کاربر مشترک بهروزرسانی میشوند. | |
| وضعیت خواندن چندین نخ برای کاربر مشترک بهروزرسانی میشود. | |
دادههای رویداد
این بخش دادههای رویداد و نمونههایی از بارهای داده برای رویدادها در چت را شرح میدهد.
وقتی اشتراک Google Workspace شما رویدادی را از Chat دریافت میکند، فیلد data شامل payload مربوط به آن رویداد است. این payload حاوی اطلاعاتی درباره منبع Google Workspace است که تغییر کرده است. برای مثال، اگر در رویدادهای عضویت در یک فضا مشترک شده باشید، payload مربوط به این رویدادها حاوی اطلاعاتی درباره منبع spaces.membership است که تغییر کرده است.
دادههای منبع در بار داده رویداد
هنگام ایجاد اشتراک، میتوانید مشخص کنید که آیا میخواهید محتوای اشتراک شامل جزئیات مربوط به منبع باشد یا فقط نام منبع. به عنوان مثال، اگر میخواهید رویدادهای مربوط به اعضا را در یک فضای چت دریافت کنید، مشخص کنید که میخواهید کدام فیلدهای یک منبع عضویت را در محتوای رویداد دریافت کنید.
جدول زیر نمونههایی از دادههای JSON برای اشتراک در فضای چت spaces/AAAABBBBBB را ارائه میدهد. برای هر رویدادی که اشتراک دریافت میکند، دادههای مربوط به آن رویداد در فیلد data نمایش داده میشود:
| مثال | نوع رویداد | بار داده JSON |
|---|---|---|
یک کاربر پیامی را در این فضا ارسال میکند که میگوید «سلام دنیا». | | شامل دادههای منابع:
{
"message":
{
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"message":
{
"name": "spaces/ |
| یک کاربر مدیر فضا میشود. | | شامل دادههای منابع:
{
"membership":
{
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"membership":
{
"name": "spaces/ |
| یک کاربر توضیحات مربوط به فضا را به «تیم فروش Cymbal Labs» بهروزرسانی میکند. | google.workspace.chat.space.v1.updated | شامل دادههای منابع:
{
"space":
{
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"space":
{
"name": "spaces/ |
| دو کاربر چت همزمان به فضا اضافه شدند. | google.workspace.chat.membership.v1.batchCreated | شامل دادههای منابع:
{
"memberships": [
{
"membership": {
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"memberships": [
{
"membership": {
"name": "spaces/ |
| یک کاربر با ایموجی 😊 به یک پیام واکنش نشان میدهد. | google.workspace.chat.reaction.v1.created | شامل دادههای منابع:
{
"reaction":
{
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"reaction":
{
"name": "spaces/ |
| کاربران با ایموجیهای 😊 و 😸 به یک پیام واکنش نشان میدهند. | google.workspace.chat.reaction.v1.batchCreated | شامل دادههای منابع:
{
"reactions": [
{
"reaction": {
"name": "spaces/دادههای منابع را شامل نمیشود:
{
"reactions": [
{
"reaction": {
"name": "spaces/ |
| کاربر از یک فضای خوانده نشده بازدید میکند که وضعیت خوانده شدن فضای او را بهروزرسانی میکند. | google.workspace.chat.spaceReadState.v1.updated | شامل دادههای منابع:
{
"spaceReadState": {
"name": "users/دادههای منابع را شامل نمیشود:
{
"spaceReadState": {
"name": "users/ |
| کاربر پیامی را در یک رشته میخواند که وضعیت خوانده شدن رشته او را بهروزرسانی میکند. | google.workspace.chat.threadReadState.v1.updated | شامل دادههای منابع:
{
"threadReadState": {
"name": "users/دادههای منابع را شامل نمیشود:
{
"threadReadState": {
"name": "users/ |
| یک کاربر در چت در دسترس قرار میگیرد. | google.workspace.chat.availability.v1.updated | شامل دادههای منابع:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE"
}
}
دادههای منابع را شامل نمیشود:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| یک کاربر در چت بیکار میشود. | google.workspace.chat.availability.v1.updated | شامل دادههای منابع:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "IDLE",
}
}
دادههای منابع را شامل نمیشود:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
کاربر، زمان دسترسی خود را در چت روی « Away تنظیم میکند. | google.workspace.chat.availability.v1.updated | شامل دادههای منابع:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "AWAY",
}
}
دادههای منابع را شامل نمیشود:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
کاربر، وضعیت دسترسی خود را در چت روی « Do not disturb تنظیم میکند. | google.workspace.chat.availability.v1.updated | شامل دادههای منابع:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "DO_NOT_DISTURB",
"doNotDisturbMetadata": {
"expirationTime": "2026-03-24T18:36:31.337Z"
}
}
}
دادههای منابع را شامل نمیشود:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| کاربر یک وضعیت سفارشی در چت تنظیم میکند. | google.workspace.chat.availability.v1.updated | شامل دادههای منابع:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE",
"customStatus": {
"text": "Be right back",
"emoji": {
"unicode": "👟"
},
"expireTime": "2026-03-24T18:38:05.583655Z"
}
}
}
دادههای منابع را شامل نمیشود:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
محدودیتها و رفتارهای تحویل
محدودیتهای کلی
- برای دریافت رویدادهای عضویت، کاربر یا برنامه چت باید عضو مستقیم آن فضا باشند. اگر آنها به طور غیرمستقیم از طریق یک گروه گوگل به یک فضا اضافه، بهروزرسانی یا حذف شده باشند، اشتراک آن رویدادهای عضویت را دریافت نمیکند. برای درک نحوه عملکرد عضویت در گروه گوگل، به افزودن یک گروه گوگل به یک فضا مراجعه کنید.
اشتراکهای کاربری
- برای اشتراک کاربران، رویدادهای مربوط به اعضای جدید در پیامهای مستقیم یا چتهای گروهی بدون نام (
google.workspace.chat.membership.v1.created)، فقط پس از ارسال اولین پیام فعال میشوند.
اشتراکهای مشتری (پیشنمایش توسعهدهنده )
برای اشتراکهای مشتری، محدودیتهای زیر اعمال میشود:
- سازمان Google Workspace باید حداقل یک مجوز Enterprise SKU داشته باشد. توجه داشته باشید که این الزام در مرحله برنامه پیشنمایش توسعهدهندگان به طور جدی اعمال نمیشود، اما در آینده (که جداگانه اعلام خواهد شد) اعمال خواهد شد.
- یک برنامه چت فقط میتواند یک اشتراک مشتری برای یک سازمان Google Workspace مشخص ایجاد کند. یک سازمان Google Workspace میتواند در مجموع تا پنج اشتراک مشتری (ایجاد شده توسط برنامههای چت مختلف) داشته باشد.
برای اشتراکهای مشتری، تحویل رویداد از این قوانین کلی پیروی میکند:
- رویدادهای فضایی : فقط در صورتی ارائه میشود که رویداد در فضایی تحت مدیریت سازمان Google Workspace شما رخ دهد.
- رویدادهای کاربر : فقط در صورتی ارائه میشود که رویداد برای کاربری که متعلق به سازمان Google Workspace شما است، رخ دهد.
تنها استثنا برای این قوانین، رویدادهای عضویت است. اشتراک شما میتواند رویدادهای عضویت را هم از فضاهای مدیریتشده توسط سازمان شما و هم از فضاهای مدیریتشده توسط سازمانهای خارجی دریافت کند، اما نحوهی ارائهی آنها بستگی به این دارد که کدام سازمان فضا را مدیریت میکند:
فضاهای مدیریتشده توسط سازمان Google Workspace شما
اگر تغییر عضویت در فضایی که توسط سازمان Google Workspace مدیریت میشود رخ دهد، به عنوان یک رویداد فضایی ارائه میشود.
نام منبع یک رویداد فضایی از قالب زیر استفاده میکند:
spaces/{spaceId}/spaceEvents/{spaceEventId}
فضاهایی که توسط سازمانهای خارجی مدیریت میشوند
اگر عضویت کاربری که توسط سازمان Google Workspace شما مدیریت میشود، در فضایی که توسط یک سازمان خارجی مدیریت میشود (مثلاً یک فضای نامگذاریشده خارجی یا یک پیام مستقیم ایجاد شده توسط یک کاربر خارجی) تغییر کند، اشتراک شما این رویداد را به عنوان یک رویداد کاربری دریافت میکند.
نام منبع یک رویداد کاربر از قالب زیر استفاده میکند:
users/{userId}/userEvents/{userEventId}
مباحث مرتبط
- ساختار رویدادهای Google Workspace
- انتخاب محدودههای OAuth
- برای دریافت رویدادهای چت، اشتراک ایجاد کنید