این راهنما نحوه استفاده از متد get()
را در منبع SpaceEvent
در Google Chat API برای دریافت جزئیات یک رویداد از فضای چت Google توضیح میدهد.
منبع SpaceEvent
نشاندهنده تغییر در یک فضا یا منابع فرزند آن، مانند پیامها، واکنشها و عضویتها است. برای آشنایی با انواع رویدادهای پشتیبانی شده، به قسمت eventType
در اسناد مرجع منبع SpaceEvent
مراجعه کنید.
شما می توانید رویدادها را حداکثر تا 28 روز قبل از زمان درخواست درخواست کنید. این رویداد حاوی جدیدترین نسخه منبعی است که تغییر کرده است. به عنوان مثال، اگر رویدادی را درباره یک پیام جدید درخواست کنید اما پیام بعداً بهروزرسانی شد، سرور منبع Message
بهروز شده را در بارگذاری رویداد برمیگرداند.
برای فراخوانی این روش، باید از احراز هویت کاربر استفاده کنید. برای دریافت یک رویداد، کاربر احراز هویت شده باید عضوی از فضایی باشد که رویداد در آن رخ داده است.
پیش نیازها
Node.js
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- Node.js Cloud Client Library را نصب کنید.
- اعتبارنامه دسترسی را بر اساس نحوه احراز هویت در درخواست Google Chat API خود ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبار شناسه مشتری OAuth را ایجاد کنید و اعتبارنامه ها را به عنوان یک فایل JSON با نام
credentials.json
در فهرست محلی خود ذخیره کنید. - برای احراز هویت بهعنوان برنامه چت، اعتبار حساب سرویس ایجاد کنید و اعتبارنامهها را بهعنوان فایل JSON با نام
credentials.json
ذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبار شناسه مشتری OAuth را ایجاد کنید و اعتبارنامه ها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید بهعنوان کاربر یا برنامه چت احراز هویت کنید ، محدوده مجوز را انتخاب کنید .
پایتون
- یک حساب Google Workspace تجاری یا سازمانی با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه Google Cloud ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- Google Chat API را با نام، نماد و توضیحات برای برنامه Chat خود فعال و پیکربندی کنید .
- کتابخانه Client Python Cloud را نصب کنید.
- اعتبارنامه دسترسی را بر اساس نحوه احراز هویت در درخواست Google Chat API خود ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبار شناسه مشتری OAuth را ایجاد کنید و اعتبارنامه ها را به عنوان یک فایل JSON با نام
credentials.json
در فهرست محلی خود ذخیره کنید. - برای احراز هویت بهعنوان برنامه چت، اعتبار حساب سرویس ایجاد کنید و اعتبارنامهها را بهعنوان فایل JSON با نام
credentials.json
ذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبار شناسه مشتری OAuth را ایجاد کنید و اعتبارنامه ها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید بهعنوان کاربر یا برنامه چت احراز هویت کنید ، محدوده مجوز را انتخاب کنید .
دریافت جزئیات در مورد یک رویداد فضایی (تأیید هویت کاربر)
برای دریافت جزئیات یک رویداد فضایی در Google Chat، موارد زیر را در درخواست خود ارسال کنید:
- محدوده مجوزی را که از نوع رویداد در درخواست شما پشتیبانی می کند، مشخص کنید. به عنوان بهترین روش، محدودترین محدوده را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می دهد.
- متد
GetSpaceEvent()
را فراخوانی کنید وname
رویداد فضایی را برای دریافت ارسال کنید.
مثال زیر یک رویداد فضایی را دریافت می کند:
Node.js
این نمونه کد Node.js از Chat RPC API استفاده می کند.
برای اجرای این نمونه، موارد زیر را جایگزین کنید:
-
SCOPE_NAME
: یک محدوده مجوز بر اساس نوع رویداد. برای مثال، اگر یک رویداد فضایی درباره عضویت جدید دریافت میکنید، از محدودهchat.memberships.readonly
با قالببندیhttps://www.googleapis.com/auth/chat.memberships.readonly
استفاده کنید. می توانید نوع رویداد را از متدListSpaceEvents()
بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید. -
SPACE_NAME
: شناسه ازname
فضا. شما می توانید شناسه را با فراخوانی متدListSpaces()
یا از URL فضا بدست آورید. -
SPACE_EVENT_NAME
: شناسهname
رویداد فضایی. می توانید شناسه را از متدListSpaceEvents()
بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید.
Chat API نمونه ای از SpaceEvent
را با جزئیات مربوط به رویداد برمی گرداند.
دریافت جزئیات درباره یک رویداد فضایی (احراز هویت برنامه چت)
احراز هویت برنامه نیاز به تأیید یکباره سرپرست دارد.
برای دریافت جزئیات درباره یک رویداد فضایی از یک فضا با تأیید اعتبار برنامه با استفاده از Chat REST API ، موارد زیر را در درخواست خود ارسال کنید:
- یک یا چند حوزه مجوز را برای پشتیبانی از هر نوع رویداد در درخواست خود مشخص کنید. به عنوان بهترین روش، محدودترین محدوده را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می دهد. برای کسب اطلاعات بیشتر در مورد انتخاب یک محدوده، به نمای کلی احراز هویت و مجوز مراجعه کنید.
-
https://www.googleapis.com/auth/chat.app.memberships
-
https://www.googleapis.com/auth/chat.app.messages.readonly
-
https://www.googleapis.com/auth/chat.app.spaces
-
- متد
get
را در منبعspaceEvents
فراخوانی کنید. - برای دریافت جزئیات رویداد،
name
فضا را ارسال کنید.
یک کلید API ایجاد کنید
برای فراخوانی یک روش API پیشنمایش برنامهنویس، باید از یک نسخه پیشنمایش برنامهنویس غیرعمومی سند کشف API استفاده کنید. برای احراز هویت درخواست، باید یک کلید API ارسال کنید.
برای ایجاد کلید API، پروژه Google Cloud برنامه خود را باز کنید و کارهای زیر را انجام دهید:
- در کنسول Google Cloud، به > APIs & Services > Credentials بروید.
- روی ایجاد اعتبارنامه > کلید API کلیک کنید.
- کلید API جدید شما نمایش داده می شود.
- روی Copy کلیک کنید تا کلید API خود را برای استفاده در کد برنامه خود کپی کنید. کلید API را میتوانید در بخش «کلیدهای API» اعتبار پروژهتان پیدا کنید.
- برای جلوگیری از استفاده غیرمجاز، توصیه میکنیم کلید API را در کجا و برای کدام APIها محدود کنید. برای جزئیات بیشتر، به افزودن محدودیتهای API مراجعه کنید.
اسکریپتی بنویسید که Chat API را فراخوانی کند
در اینجا نحوه دریافت جزئیات درباره یک رویداد فضایی با احراز هویت برنامه و Chat REST API آمده است:
پایتون
این نمونه کد پایتون از Chat REST API استفاده می کند.
- در فهرست کاری خود، فایلی با نام
chat_spaceevents_get_app.py
ایجاد کنید. کد زیر را در
chat_spaceevents_get_app.py
قرار دهید:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships.readonly` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY') # Use the service endpoint to call Chat API. result = chat.spaces().spaceEvents().get( # The space to get event details from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME', ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()
در کد زیر را جایگزین کنید:
-
API_KEY
: کلید API که برای ساختن نقطه پایانی سرویس برای Chat API ایجاد کردید. -
SPACE_NAME
: نام فضایی است که می توانید از روشspaces.list
در Chat API یا از URL یک فضا دریافت کنید. -
SPACE_EVENT_NAME
: شناسهname
رویداد فضایی. می توانید شناسه را از متدListSpaceEvents()
بدست آورید. برای یادگیری نحوه استفاده از این روش، فهرست رویدادها را از یک فاصله ببینید.
-
در پوشه کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_spaceevents_get_app.py
Chat API فهرستی از فهرست صفحهبندیشده رویدادهای فضایی درباره عضویتها و پیامهای جدید را برمیگرداند.