این راهنما نحوه استفاده از متد get() در منبع SpaceEvent از API چت گوگل را برای دریافت جزئیات مربوط به یک رویداد از فضای چت گوگل توضیح میدهد.
منبع SpaceEvent نشاندهندهی تغییری در یک فضا یا منابع فرزند آن، مانند پیامها، واکنشها و عضویتها است. برای آشنایی با انواع رویدادهای پشتیبانیشده، به فیلد eventType در مستندات مرجع منبع SpaceEvent مراجعه کنید.
شما میتوانید رویدادها را تا ۲۸ روز قبل از زمان درخواست درخواست کنید. این رویداد شامل جدیدترین نسخه منبعی است که تغییر کرده است. به عنوان مثال، اگر رویدادی در مورد یک پیام جدید درخواست کنید اما پیام بعداً بهروزرسانی شود، سرور منبع Message بهروزرسانی شده را در payload رویداد برمیگرداند.
برای فراخوانی این متد، باید از احراز هویت کاربر استفاده کنید. برای دریافت یک رویداد، کاربر احراز هویت شده باید عضو فضایی باشد که رویداد در آن رخ داده است.
پیشنیازها
نود جی اس
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری Node.js را نصب کنید.
- بر اساس نحوهی احراز هویت در درخواست API چت گوگل خود، اعتبارنامههای دسترسی ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید. - برای احراز هویت به عنوان برنامه چت، اعتبارنامههای حساب سرویس را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید به عنوان کاربر یا برنامه چت احراز هویت کنید ، یک محدوده مجوز انتخاب کنید .
پایتون
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت ابری پایتون را نصب کنید.
- بر اساس نحوهی احراز هویت در درخواست API چت گوگل خود، اعتبارنامههای دسترسی ایجاد کنید:
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید. - برای احراز هویت به عنوان برنامه چت، اعتبارنامههای حساب سرویس را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonذخیره کنید.
- برای احراز هویت به عنوان کاربر چت، اعتبارنامههای OAuth client ID را ایجاد کنید و اعتبارنامهها را به عنوان یک فایل JSON با نام
- بر اساس اینکه میخواهید به عنوان کاربر یا برنامه چت احراز هویت کنید ، یک محدوده مجوز انتخاب کنید .
دریافت جزئیات مربوط به یک رویداد فضایی (احراز هویت کاربر)
برای دریافت جزئیات مربوط به یک رویداد فضایی در گوگل چت، موارد زیر را در درخواست خود وارد کنید:
- یک محدوده مجوزدهی مشخص کنید که از نوع رویداد در درخواست شما پشتیبانی کند. به عنوان یک روش بهتر، محدودترین محدودهای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد میدهد.
- متد
GetSpaceEvent()را فراخوانی کنید وnameرویداد فضایی را که میخواهید دریافت کنید، به آن ارسال کنید.
مثال زیر یک رویداد فضایی دریافت میکند:
نود جی اس
این نمونه کد Node.js از API چت RPC استفاده میکند.
برای اجرای این نمونه، موارد زیر را جایگزین کنید:
-
SCOPE_NAME: یک محدوده مجوز بر اساس نوع رویداد. برای مثال، اگر در مورد یک عضویت جدید، یک رویداد فضایی دریافت میکنید، از محدودهchat.memberships.readonlyبا فرمتhttps://www.googleapis.com/auth/chat.memberships.readonlyاستفاده کنید. میتوانید نوع رویداد را از متدListSpaceEvents()دریافت کنید. برای یادگیری نحوه استفاده از این متد، به List events from a space مراجعه کنید. -
SPACE_NAME: شناسهیnameفضا. میتوانید شناسه را با فراخوانی متدListSpaces()یا از URL فضا به دست آورید. -
SPACE_EVENT_NAME: شناسهای که ازnameرویداد فضایی گرفته شده است. میتوانید شناسه را از متدListSpaceEvents()به دست آورید. برای یادگیری نحوه استفاده از این متد، به بخش «فهرست رویدادها از یک فضا» مراجعه کنید.
API چت، نمونهای از SpaceEvent را به همراه جزئیاتی در مورد رویداد برمیگرداند.
دریافت جزئیات مربوط به یک رویداد فضایی (احراز هویت از طریق برنامه چت)
احراز هویت برنامه نیاز به تأیید یکباره مدیر دارد.
برای دریافت جزئیات مربوط به یک رویداد فضایی از یک فضا با احراز هویت برنامه با استفاده از Chat REST API ، موارد زیر را در درخواست خود ارسال کنید:
- برای پشتیبانی از هر نوع رویداد در درخواست خود، یک یا چند حوزه مجوزدهی مشخص کنید. به عنوان یک روش بهتر، محدودترین حوزهای را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد میدهد. برای کسب اطلاعات بیشتر در مورد انتخاب یک حوزه، به نمای کلی احراز هویت و مجوزدهی مراجعه کنید.
-
https://www.googleapis.com/auth/chat.app.memberships -
https://www.googleapis.com/auth/chat.app.memberships.readonly -
https://www.googleapis.com/auth/chat.app.messages.readonly -
https://www.googleapis.com/auth/chat.app.spaces -
https://www.googleapis.com/auth/chat.app.spaces.readonly
-
- متد
getرا روی منبعspaceEventsفراخوانی کنید. -
nameفضایی را که میخواهید جزئیات رویداد را از آن دریافت کنید، وارد کنید.
اسکریپتی بنویسید که 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` 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.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] 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) # 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()در کد، موارد زیر را جایگزین کنید:
-
SPACE_NAME: نام یک فضا که میتوانید آن را از متدspaces.listدر Chat API یا از URL یک فضا به دست آورید. -
SPACE_EVENT_NAME: شناسهای که ازnameرویداد فضایی گرفته شده است. میتوانید شناسه را از متدListSpaceEvents()به دست آورید. برای یادگیری نحوه استفاده از این متد، به بخش «فهرست رویدادها از یک فضا» مراجعه کنید.
-
در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 chat_spaceevents_get_app.py
API چت، فهرستی از رویدادهای فضایی صفحهبندیشده در مورد عضویتها و پیامهای جدید را برمیگرداند.