ایجاد اشتراک Google Workspace

این صفحه نحوه استفاده از Google Workspace Events API را برای ایجاد اشتراک در منبع Google Workspace توضیح می‌دهد. اشتراک Google Workspace به برنامه شما امکان می‌دهد اطلاعاتی درباره رویدادهای Google Workspace دریافت کند که نشان‌دهنده تغییرات در منابع Google Workspace است. برای آشنایی با منابع و انواع رویدادهایی که Google Workspace Events API پشتیبانی می‌کند، به نمای کلی Google Workspace Events API مراجعه کنید.

این صفحه شامل مراحل زیر برای ایجاد اشتراک Google Workspace است:

  1. محیط را راه‌اندازی کنید.
  2. موضوع Pub/Sub در Google Cloud ایجاد کنید و در آن مشترک شوید. از این سند به‌عنوان نقطه پایانی برای دریافت رویدادهای Google Workspace استفاده کنید.
  3. با روش create در منبع Subscription با Google Workspace Events API تماس بگیرید.
  4. اشتراک Google Workspace خود را آزمایش کنید تا مطمئن شوید که موضوع Pub/Sub شما رویدادهایی را که در آن‌ها مشترک شده‌اید دریافت می‌کند.
  5. درصورت تمایل، نحوه ارسال رویدادها به نقطه پایانی برای برنامه‌تان را پیکربندی کنید تا برنامه‌تان بتواند رویداد را پردازش کند و درصورت لزوم اقدام کند.

پیش‌نیازها

Apps Script

  • برای استفاده از فرمان‌های Google Cloud CLI در این راهنما:
    1. Google Cloud CLI را نصب کنید.
    2. برای راه‌اندازی gcloud CLI، کد زیر را اجرا کنید:
    3.   gcloud init
        
  • پروژه Apps Script:
    • به‌جای پروژه پیش‌فرضی که به‌طور خودکار توسط Apps Script ایجاد شده است، از پروژه Google Cloud خودتان استفاده کنید.
    • برای همه دامنه‌هایی که برای پیکربندی صفحه رضایت OAuth اضافه کردید، باید دامنه‌ها را به فایل appsscript.json در پروژه Apps Script خود نیز اضافه کنید. برای مثال، اگر دامنه chat.messages را مشخص کرده‌اید، موارد زیر را اضافه کنید:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • فعال کردن سرویس پیشرفته Google Workspace Events.
  • پروژه Google Cloud با صورت‌حساب فعال‌شده. برای اشتراک‌های Chat، باید Chat API را نیز در پروژه Cloud خود فعال کنید و فیلدهای نام برنامه، نشانی وب چهره‌نما، و شرح را پیکربندی کنید. برای جزئیات، به ساختن برنامه Google Chat مراجعه کنید.
  • به اصالت‌سنجی و محدوده مجوز مناسب برای هر نوع رویداد در اشتراک نیاز دارد:
    • معمولاً به اصالت‌سنجی کاربر با صفحه کسب رضایت OAuth پیکربندی‌شده برای برنامه نیاز دارد. وقتی صفحه کسب رضایت را پیکربندی می‌کنید، باید دامنه‌ای را برای پشتیبانی از هر نوع رویداد برای اشتراک مشخص کنید. برای پیکربندی صفحه رضایت و شناسایی دامنه‌های موردنیاز، انتخاب دامنه‌ها را ببینید.
    • برای مشترک شدن در رویداد Chat به‌عنوان برنامه Chat، به اصالت‌سنجی برنامه با تأیید یک‌باره سرپرست نیاز است.

Python

  • پایتون ۳.۶ یا بالاتر
  • ابزار مدیریت بسته pip
  • جدیدترین کتابخانه‌های کارخواه Google برای Python. برای نصب یا به‌روزرسانی آن‌ها، فرمان زیر را در میانای خط فرمان اجرا کنید:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • برای استفاده از فرمان‌های Google Cloud CLI در این راهنما:
    1. Google Cloud CLI را نصب کنید.
    2. برای راه‌اندازی gcloud CLI، کد زیر را اجرا کنید:
    3.   gcloud init
        
  • پروژه Google Cloud با صورت‌حساب فعال‌شده. برای اشتراک‌های Chat، باید Chat API را نیز در پروژه Cloud خود فعال کنید و فیلدهای نام برنامه، نشانی وب چهرک، و شرح را پیکربندی کنید. برای جزئیات، به ساختن برنامه Google Chat مراجعه کنید.
  • به اصالت‌سنجی و محدوده مجوز مناسب برای هر نوع رویداد در اشتراک نیاز دارد:
    • معمولاً به اصالت‌سنجی کاربر با صفحه کسب رضایت OAuth پیکربندی‌شده برای برنامه نیاز دارد. وقتی صفحه کسب رضایت را پیکربندی می‌کنید، باید دامنه‌ای را برای پشتیبانی از هر نوع رویداد برای اشتراک مشخص کنید. برای پیکربندی صفحه رضایت و شناسایی دامنه‌های موردنیاز، انتخاب دامنه‌ها را ببینید.
    • برای مشترک شدن در رویداد Chat به‌عنوان برنامه Chat، به اصالت‌سنجی برنامه با تأیید یک‌باره سرپرست نیاز است.

راه‌اندازی محیط

بخش زیر نحوه راه‌اندازی محیط را قبل‌از ایجاد اشتراک Google Workspace توضیح می‌دهد.

Google Workspace Events API و Google Cloud Pub/Sub API را فعال کنید

قبل‌از استفاده از Google API، باید آن‌ها را در پروژه Google Cloud فعال کنید. می‌توانید یک یا چند میانای برنامه‌سازی کاربردی را در یک پروژه Google Cloud روشن کنید.

;کنسول Google Cloud

در کنسول Google Cloud، پروژه Google Cloud را برای برنامه‌تان باز کنید و Google Workspace Events API و Pub/Sub API را فعال کنید:

فعال کردن میاناهای برنامه‌سازی کاربردی

gcloud

  1. در فهرست راهنمای کاری‌تان، به سیستم «حساب Google» خود وارد شوید:

    gcloud auth login
  2. پروژه‌تان را روی پروژه Cloud برای برنامه‌تان تنظیم کنید:

    gcloud config set project PROJECT_ID

    PROJECT_ID را با شناسه پروژه برای پروژه Cloud برنامه‌تان جایگزین کنید.

  3. Google Workspace Events API و Google Cloud Pub/Sub API را فعال کنید:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

ایجاد اعتبارنامه‌های شناسه کارخواه OAuth

نوع برنامه خود را برای دستورالعمل‌های خاص درباره نحوه ایجاد شناسه کارخواه OAuth انتخاب کنید:

برنامه وب

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > برنامه وب کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. شناسه‌های منبع یکسان مجاز مربوط به برنامه‌تان را اضافه کنید:
    • برنامه‌های سمت کارخواه (جاوا اسکریپت)–در بخش مبدأهای مجاز جاوا اسکریپت، روی افزودن شناسه منبع یکسان کلیک کنید. سپس، شناسه منبع یکسانی را برای استفاده در درخواست‌های مرورگر وارد کنید. این گزینه دامنه‌هایی را که برنامه‌تان می‌تواند از آن‌ها درخواست‌های میانای برنامه‌سازی کاربردی به سرور OAuth 2.0 ارسال کند شناسایی می‌کند.
    • برنامه‌های سمت سرور (Java،‏ Python، و غیره)–در بخش نشانی‌های وب هدایت مجاز، روی افزودن نشانی وب کلیک کنید. سپس، یک URI نقطه پایان وارد کنید که سرور OAuth 2.0 بتواند پاسخ‌ها را به آن ارسال کند.
  6. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  7. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدیدی که ایجاد شده است در بخش شناسه‌های کارخواه OAuth 2.0 نشان داده می‌شود.

    توجه داشته باشید که از رمزهای کارخواه برای برنامه‌های وب استفاده نمی‌شود.

Android

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > Android کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. در فیلد نام بسته، نام بسته را از فایل AndroidManifest.xml وارد کنید.
  6. در فیلد اثر انگشت گواهینامه اس‌اچ‌اِی-۱، اثر انگشت گواهینامه اس‌اچ‌اِی-۱ تولیدشده را وارد کنید.
  7. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  8. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

iOS

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > iOS کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. در فیلد شناسه دسته نرم‌افزاری، شناسه دسته نرم‌افزاری را همان‌طور که در فایل Info.plist برنامه فهرست شده است وارد کنید.
  6. اختیاری: اگر برنامه‌تان در Apple App Store نشان داده می‌شود، شناسه App Store را وارد کنید.
  7. اختیاری: در فیلد شناسه تیم، رشته ۱۰ نویسه‌ای منحصربه‌فردی را که Apple تولید کرده و به تیم شما اختصاص داده است وارد کنید.
  8. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  9. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

برنامه Chrome

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > افزونه Chrome کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. در فیلد شناسه مورد، رشته شناسه ۳۲ نویسه‌ای یکتای برنامه‌تان را وارد کنید. می‌توانید این مقدار شناسه را در نشانی وب «نت‌بازار Chrome» برنامه‌تان و در داشبورد توسعه‌دهندگان «نت‌بازار Chrome» پیدا کنید.
  6. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  7. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

برنامه ویژه رایانه

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > برنامه رایانه‌ای کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  6. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

تلویزیون‌ها و دستگاه‌های ورودی محدود

  1. در «کنسول Google Cloud»، به «منو» > پلاتفرم Google Auth > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > تلویزیون‌ها و دستگاه‌های ورودی محدود کلیک کنید.
  4. در فیلد نام، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در Google Cloud Console نشان داده می‌شود.
  5. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  6. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

پلتفورم جهانی ویندوز (UWP)

  1. در Google API Console، به «منو» > > کارخواه‌ها بروید.

    رفتن به «مشتریان»

  2. روی ایجاد کارخواه کلیک کنید.
  3. روی نوع برنامه > پلاتفرم جهانی Windows‏ (UWP) کلیک کنید.
  4. در فیلد «نام»، نامی برای اطلاعات کاربری تایپ کنید. این نام فقط در «کنسول Google API» نشان داده می‌شود.
  5. در فیلد «شناسه فروشگاه»، مقدار شناسه ۱۲ نویسه‌ای یکتای برنامه خود در Microsoft Store را وارد کنید. می‌توانید این شناسه را در نشانی وب Microsoft Store برنامه‌تان و در مرکز شریک پیدا کنید.
  6. اختیاری: اگر برنامه‌تان عامل هوش مصنوعی است که ازطرف کاربران اقدام می‌کند، استفاده از این کارخواه برای عامل مجهز به هوش مصنوعی را انتخاب کنید. اگر برنامه‌تان هم از گردش‌های کاری عامل هوش مصنوعی و هم از ویژگی‌های کاربر استاندارد پشتیبانی می‌کند، برای هرکدام کارخواه OAuth جداگانه‌ای ایجاد کنید. بعداز ایجاد کردن کارخواه نمی‌توانید این تنظیم را تغییر دهید.
  7. روی ایجاد کردن کلیک کنید.

    اعتبارنامه جدید ایجادشده در بخش «شناسه‌های کارخواه OAuth 2.0» نشان داده می‌شود.

بارگیری فایل JSON رمز کارخواه

فایل رمز کارخواه نمایشی از اعتبارنامه شناسه کارخواه OAuth در قالب JSON است که برنامه شما می‌تواند هنگام ارائه اعتبارنامه به آن ارجاع دهد.

  1. در «کنسول Google API»، به «منو» > میاناهای برنامه‌سازی کاربردی و سرویس‌ها > اطلاعات کاربری بروید.

    رفتن به «اطلاعات کاربری»

  2. در بخش شناسه‌های کارخواه OAuth 2.0، روی شناسه کارخواهی که ایجاد کردید کلیک کنید.

  3. روی بارگیری JSON کلیک کنید.

  4. فایل را با نام credentials.json ذخیره کنید.

ایجاد و مشترک شدن در موضوع Pub/Sub

در این بخش، یک موضوع Pub/Sub و اشتراک برای آن موضوع ایجاد می‌کنید. موضوع Pub/Sub شما به‌عنوان نقطه پایانی اعلان عمل می‌کند که اشتراک Google Workspace شما رویدادها را در آن دریافت می‌کند.

برای کسب اطلاعات بیشتر درباره ایجاد و مدیریت موضوعات Pub/Sub، به اسناد Pub/Sub مراجعه کنید.

برای ایجاد کردن و مشترک شدن در موضوع Pub/Sub:

Google API Console

  1. در «کنسول Google API»، به صفحه Pub/Sub بروید:

    رفتن به Google Cloud Pub/Sub

    مطمئن شوید پروژه Cloud برای برنامه‌تان انتخاب شده باشد.

  2. روی ایجاد موضوع کلیک کنید و کارهای زیر را انجام دهید:

    1. نامی برای موضوعتان وارد کنید، مثلاً workspace-events-topic.
    2. افزودن اشتراک پیش‌فرض را انتخاب‌شده رها کنید. Pub/Sub نام این اشتراک پیش‌فرض را مشابه نام موضوع شما، مثلاً workspace-events-topic-sub، می‌گذارد.
    3. اختیاری: ویژگی‌های بیشتری را برای موضوعتان به‌روزرسانی یا پیکربندی کنید.
  3. روی ایجاد کردن کلیک کنید. نام کامل موضوع شما به‌صورت projects/PROJECT_ID/topics/TOPIC_ID قالب‌بندی شده است. از این نام کامل در مرحله بعدی استفاده کنید.

  4. اعطای دسترسی برای انتشار پیام‌های Pub/Sub در موضوع شما:

    1. در صفحه موضوع، به پانل کناری بروید و برگه اجازه‌ها را باز کنید.
    2. روی افزودن مدیر کلیک کنید.
    3. در فیلد افزودن اصول، حساب سرویس را برای برنامه Google Workspace که رویدادها را به اشتراکتان ارسال می‌کند اضافه کنید:
      1. برای رویدادهای Chat، chat-api-push@system.gserviceaccount.com.
      2. برای رویدادهای Drive، drive-api-event-push@system.gserviceaccount.com.
      3. برای رویدادهای Meet، meet-api-event-push@system.gserviceaccount.com.
    4. در منو واگذاری نقش‌ها، Pub/Sub Publisher را انتخاب کنید.
    5. روی ذخیره کلیک کنید. ممکن است چند دقیقه طول بکشد تا اجازه‌های موضوعتان به‌روز شود.

gcloud

  1. در پروژه Cloud، با اجرای فرمان زیر موضوعی ایجاد کنید:

    gcloud pubsub topics create TOPIC_ID

    TOPIC_ID را با شناسه یکتایی برای موضوعتان جایگزین کنید، مثلاً workspace-events-topic.

    برونداد نام کامل موضوع را به‌صورت projects/PROJECT_ID/topics/TOPIC_ID نمایش می‌دهد. نام را یادداشت کنید و مطمئن شوید مقدار PROJECT_ID شناسه پروژه Cloud برای برنامه‌تان باشد. از نام موضوع در مرحله بعدی استفاده کنید و بعداً اشتراک Google Workspace را ایجاد کنید.

  2. اعطای دسترسی برای انتشار پیام‌ها در موضوع شما:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    موارد زیر را جایگزین کنید:

    • ‫TOPIC_NAME: نام کامل موضوع که خروجی مرحله قبلی است. قالب‌بندی‌شده به‌صورت projects/PROJECT_ID/topics/TOPIC_ID.
    • GOOGLE_WORKSPACE_APPLICATION: برنامه Google Workspace که باید رویدادها را به اشتراکتان ارسال کند:

      • برای دریافت رویدادها از Chat، از یکی از حساب‌های خدماتی زیر استفاده کنید:
      • برای دریافت رویدادها از Drive، از drive-api-event-push@system.gserviceaccount.com استفاده کنید.
      • برای دریافت رویدادها از Meet، از meet-api-event-push@system.gserviceaccount.com استفاده کنید.

    به‌روزرسانی اجازه‌های موضوعتان ممکن است چند دقیقه طول بکشد.

  3. ایجاد اشتراک Pub/Sub برای موضوع:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    موارد زیر را جایگزین کنید:

    • SUBSCRIPTION_NAME: نامی برای اشتراکتان، مثل workspace-events-subscription.
    • ‫TOPIC_NAME: نام موضوعی که در مرحله قبل ایجاد کردید.

مشترک شدن در منبع Google Workspace

در این بخش، در منبع Google Workspace که می‌خواهید رویدادهای آن را پایش کنید مشترک می‌شوید.

منبع هدف را انتخاب و شناسایی کنید

در اشتراک Google Workspace، منبع هدف منبع Google Workspace است که آن را برای رویدادها پایش می‌کنید. منبع هدف در فیلد targetResource اشتراک نشان داده می‌شود و بااستفاده از نام کامل منبع قالب‌بندی می‌شود. برای مثال، برای اشتراکی که فضای گپ (spaces/AAAABBBBBBB) را پایش می‌کند، مقدار targetResource برابر با //chat.googleapis.com/spaces/AAAABBBBBBB است.

شناسایی منبع هدف برای Chat

منبع هدف قالب محدودیت‌ها
فاصله

//chat.googleapis.com/spaces/SPACE

که SPACE شناسه در نام منبع منبع Chat API space است. می‌توانید شناسه را از نشانی وب فضا یا بااستفاده از روش spaces.list() دریافت کنید.

کاربر Chat یا برنامه Chat که اشتراک را مجاز می‌کند باید ازطریق Google Workspace یا «حساب Google» خود عضو فضا باشد. پشتیبانی از:
همه فضاهای کاربر

//chat.googleapis.com/spaces/-

اشتراک فقط رویدادهای فضاهایی را دریافت می‌کند که کاربر ازطریق «حساب Google» یا Google Workspace خود عضو آن‌ها است. فقط از اصالت‌سنجی کاربر پشتیبانی می‌کند.
کاربر

//cloudidentity.googleapis.com/users/USER

که USER شناسه در نام منبع منبع Chat API user است. برای جزئیات، به شناسایی و مشخص کردن کاربران Google Chat مراجعه کنید.

اشتراک فقط رویدادهای مربوط به کاربری را دریافت می‌کند که اشتراک را مجاز کرده است. کاربر نمی‌تواند ازطرف کاربران دیگر اشتراکی را مجاز کند. فقط از اصالت‌سنجی کاربر پشتیبانی می‌کند.

مشتری ( پیش‌نمای توسعه‌دهندگان نرم‌افزار)

//admin.googleapis.com/customers/CUSTOMER

که CUSTOMER شناسه مشتری است. همچنین می‌توانید از نام مستعار my_customer برای دامنه مشتری برنامه Chat استفاده کنید.

اشتراک رویدادها را برای همه فضاها و کاربران تحت مدیریت دامنه مشتری دریافت می‌کند. فقط از اصالت‌سنجی برنامه با تأیید سرپرست پشتیبانی می‌کند.

شناسایی منبع هدف برای Drive

منبع هدف قالب محدودیت‌ها (درصورت وجود)
فایل //drive.googleapis.com/files/FILE

که در آن FILE شناسه در نام منبع منبع Drive API files است. می‌توانید شناسه را از نشانی وب فایل یا بااستفاده از روش files.list به‌دست آورید.

کاربری که اشتراک را مجاز می‌کند باید در فایل درون اشتراک مربوط به رویداد اشتراک اجازه داشته باشد.
درایو مشترک //drive.googleapis.com/drives/DRIVE

که در آن DRIVE شناسه در نام منبع منبع Drive API drives است. می‌توانید شناسه را از نشانی وب Drive یا بااستفاده از روش drives.list دریافت کنید.

اشتراک فقط رویدادهای مربوط به موارد موجود در درایو مشترک را دریافت می‌کند که کاربر ازطریق «حساب Google Workspace» یا «حساب Google» خود عضو آن است.

شناسایی منبع هدف برای Meet

منبع هدف قالب محدودیت‌ها (درصورت وجود)
فضای جلسه //meet.googleapis.com/spaces/SPACE

که در آن SPACE شناسه در نام منبع منبع Meet REST API spaces است. برای جزئیات، به نحوه شناسایی فضای جلسه توسط Meet مراجعه کنید.

کاربر //cloudidentity.googleapis.com/users/USER

که در آن USER شناسه در فیلد signedinUser.user منبع participants Meet REST API است. برای جزئیات، به کار با شرکت‌کنندگان مراجعه کنید.

اشتراک رویدادهای مربوط به همه فضاهای جلسه‌ای را که کاربر مالک آن فضای جلسه است دریافت می‌کند. معمولاً مالک فضای جلسه همان سازمان‌دهنده رویداد «تقویم Google» مرتبط با فضای جلسه است.

ایجاد کردن اشتراک Google Workspace

برای ایجاد اشتراک، از روش subscriptions.create در Google Workspace Events API برای ایجاد منبع Subscription استفاده کنید. فیلدهای زیر را مشخص کنید:

  • targetResource: Google Workspace که در بخش قبلی شناسایی کردید، بااستفاده از نام کامل منبع آن قالب‌بندی شده است.
  • ‫eventTypes: آرایه‌ای از یک یا چند نوع رویداد که می‌خواهید درباره منبع دریافت کنید. برای مثال، اگر برنامه‌تان فقط باید از پیام‌های جدیدی که در فضای Chat پست می‌شود مطلع شود، برنامه‌تان می‌تواند فقط در رویدادهای مربوط به پیام‌های ایجادشده مشترک شود.
  • notificationEndpoint: نقطه پایانی اعلان که اشتراک Google Workspace شما رویدادها را به آن ارسال می‌کند. از موضوع Pub/Sub که در بخش قبلی ایجاد کردید استفاده کنید.
  • payloadOptions: گزینه‌هایی برای مشخص کردن مقدار داده‌های منبع برای گنجاندن در بار مفید رویداد. این پیکربندی بر زمان انقضای اشتراکتان تأثیر می‌گذارد. برای کسب اطلاعات بیشتر، به داده‌های رویداد مراجعه کنید.

برای ایجاد اشتراک Google Workspace:

Apps Script

  1. در پروژه Apps Script، فایل اسکریپت جدیدی به‌نام createSubscription ایجاد کنید و کد زیر را اضافه کنید:

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    موارد زیر را جایگزین کنید:

    • TARGET_RESOURCE: منبع Google Workspace که در آن مشترک می‌شوید، با قالب نام کامل منبع. برای مثال، برای مشترک شدن در فضای Chat با شناسه فضای AAAABBBB، از //chat.googleapis.com/spaces/AAAABBBB استفاده کنید.
    • EVENT_TYPES: یک یا چند نوع رویداد که می‌خواهید در منبع هدف مشترک شوید. به‌صورت آرایه‌ای از رشته‌ها مثل 'google.workspace.chat.message.v1.created' قالب‌بندی کنید.
    • ‫TOPIC_NAME: نام کامل موضوع Pub/Sub که در پروژه Cloud خود ایجاد کرده‌اید. قالب‌بندی‌شده به‌صورت projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: مقدار بولی که مشخص می‌کند آیا اشتراک شامل داده‌های منبع در بار مفید است یا نه:

      • True: شامل همه داده‌های منبع است. برای محدود کردن فیلدهای گنجانده‌شده، فیلد fieldMask را اضافه کنید و حداقل یک فیلد برای منبع تغییریافته مشخص کنید. فقط اشتراک‌های منابع Chat از گنجاندن داده‌های منبع پشتیبانی می‌کنند.
      • False: داده‌های منبع را شامل نمی‌شود.
  2. برای ایجاد اشتراک Google Workspace، تابع createSubscription را در پروژه Apps Script خود اجرا کنید.

Python

  1. در دایرکتوری کاری‌تان، فایلی با نام create_subscription.py ایجاد کنید و کد زیر را به آن اضافه کنید:

    """Create subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    موارد زیر را جایگزین کنید:

    • SCOPES: یک یا چند گستره OAuth که از هر نوع رویداد برای اشتراک پشتیبانی می‌کند. به‌صورت آرایه‌ای از رشته‌ها قالب‌بندی شده است. برای فهرست کردن چند دامنه، آن‌ها را با کاما از هم جدا کنید. برای مثال، 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • TARGET_RESOURCE: منبع Google Workspace که در آن مشترک می‌شوید، با قالب نام کامل منبع. برای مثال، برای مشترک شدن در فضای Chat با شناسه فضای AAAABBBB، از //chat.googleapis.com/spaces/AAAABBBB استفاده کنید.
    • EVENT_TYPES: یک یا چند نوع رویداد که می‌خواهید در منبع هدف مشترک شوید. به‌صورت آرایه‌ای از رشته‌ها مثل 'google.workspace.chat.message.v1.created' قالب‌بندی کنید.
    • ‫TOPIC_NAME: نام کامل موضوع Pub/Sub که در پروژه Cloud خود ایجاد کرده‌اید. قالب‌بندی‌شده به‌صورت projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: مقدار بولی که مشخص می‌کند آیا اشتراک شامل داده‌های منبع در بار مفید است یا نه:

      • True: شامل همه داده‌های منبع است. برای محدود کردن فیلدهای گنجانده‌شده، فیلد fieldMask را اضافه کنید و حداقل یک فیلد برای منبع تغییریافته مشخص کنید. فقط اشتراک‌های منابع Chat از گنجاندن داده‌های منبع پشتیبانی می‌کنند.
      • False: داده‌های منبع را شامل نمی‌شود.
  2. برای ایجاد اشتراک Google Workspace، دستور زیر را در پایانه خود اجرا کنید:

    python3 create_subscription.py

‫Google Workspace Events API یک عملیات طولانی‌مدت تکمیل‌شده را برمی‌گرداند که حاوی نمونه منبع Subscription است که ایجاد کرده‌اید.

آزمایش کردن اشتراک Google Workspace

برای آزمایش اینکه رویدادهای Google Workspace را دریافت می‌کنید، می‌توانید رویدادی را راه‌اندازی کنید و پیام‌ها را به اشتراک Pub/Sub بکشید.

برای آزمایش اشتراک Google Workspace:

Google API Console

  1. یک یا چند نوع رویداد را در منبع هدف اشتراک Google Workspace خود راه‌اندازی کنید. برای مثال، اگر در پیام‌های جدید در فضای Chat مشترک شده‌اید، پیامی را در فضا پست کنید.

  2. در «کنسول Google API»، به صفحه Pub/Sub بروید:

    رفتن به Pub/Sub

    مطمئن شوید پروژه Cloud برای برنامه‌تان انتخاب شده باشد.

  3. در منو Pub/Sub، روی اشتراک‌ها کلیک کنید.

  4. در جدول، اشتراک Pub/Sub را برای موضوعتان پیدا کنید و روی نام اشتراک کلیک کنید.

  5. روی برگه پیام‌ها کلیک کنید.

  6. روی کشیدن کلیک کنید. ممکن است چند دقیقه طول بکشد تا رویدادی پیام Pub/Sub تولید کند.

gcloud

  1. یک یا چند نوع رویداد را در منبع هدف اشتراک Google Workspace خود راه‌اندازی کنید. برای مثال، اگر در پیام‌های جدید در فضای Chat مشترک شده‌اید، پیامی در فضا پست کنید.

  2. فرمان زیر را اجرا کنید:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    موارد زیر را جایگزین کنید:

    • PUBSUB_SUBSCRIPTION_NAME: نام کامل اشتراک Pub/Sub شما، با قالب projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID.
    • ‫MESSAGE_COUNT: حداکثر تعداد پیام‌های Pub/Sub که می‌خواهید بکشید.

    ممکن است چند دقیقه طول بکشد تا رویدادی پیام Pub/Sub تولید کند.

برای هر رویداد Google Workspace که راه‌اندازی کرده‌اید، پیامی به اشتراک Pub/Sub شما ارسال می‌شود که حاوی رویداد است. برای جزئیات، به دریافت رویدادها به‌عنوان پیام‌های Google Cloud Pub/Sub مراجعه کنید.

پیکربندی نحوه دریافت رویدادها توسط برنامه شما

اشتراک Pub/Sub که ایجاد کرده‌اید مبتنی بر کشیدن است. پس‌از آزمایش کردن اشتراک Pub/Sub، می‌توانید نوع تحویل را به‌روز کنید تا نحوه دریافت رویدادها توسط برنامه‌تان را تغییر دهید. برای مثال، می‌توانید اشتراک Pub/Sub را برای نوع ارسال فشاری پیکربندی کنید تا برنامه‌تان بتواند رویدادها را مستقیماً در نقطه پایانی برنامه دریافت کند.

برای آشنایی با پیکربندی اشتراک Pub/Sub، به اسناد Pub/Sub مراجعه کنید.

مشترک شدن در رویدادهای فضای Chat به‌عنوان برنامه Google Chat

می‌توانید به‌عنوان برنامه Chat از فضایی که برنامه Chat در آن عضویت دارد، در رویدادهای Chat مشترک شوید. برنامه‌های گپ نمی‌توانند در رویدادهای کاربر مشترک شوند.

نوشتن اسکریپتی که Google Workspace Events API را فراخوانی می‌کند

در اینجا نحوه ایجاد اشتراک برای رویدادهای فضای Chat با اصالت‌سنجی برنامه و تأیید سرپرست آورده شده است:

  1. درصورت لزوم، برنامه Chat بسازید.
  2. مشترک شدن در منبع Chat، اما:

    1. به‌جای اصالت‌سنجی کاربر، با تأیید یک‌باره سرپرست، به‌عنوان برنامه Chat اصالت‌سنجی کنید.
    2. گستره‌های مجوز را که به برنامه Chat اجازه می‌دهد در رویدادهای Chat مشترک شود مشخص کنید. این دامنه‌های مجوز همیشه با chat.app شروع می‌شوند و شامل موارد زیر هستند:

      • https://www.googleapis.com/auth/chat.app.memberships: مشترک شدن در رویدادهای عضو فضای Chat.
      • https://www.googleapis.com/auth/chat.app.memberships.readonly: مشترک شدن در رویدادهای عضو فضای Chat.
      • https://www.googleapis.com/auth/chat.app.messages.readonly: مشترک شدن در رویدادهای واکنش و پیام فضای Chat.
      • https://www.googleapis.com/auth/chat.app.spaces: مشترک شدن در رویدادهای فضای Chat.
      • https://www.googleapis.com/auth/chat.app.spaces.readonly: مشترک شدن در رویدادهای فضای Chat.

نمونه کد زیر در رویدادهای پیام در فضای Chat مشخص‌شده مشترک می‌شود:

Python

  """Create subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
  TOPIC = 'TOPIC_NAME'

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1',
      credentials=CREDENTIALS,
  )

  BODY = {
      'target_resource': TARGET_RESOURCE,
      'event_types': EVENT_TYPES,
      'notification_endpoint': {'pubsub_topic': TOPIC},
      'payload_options': {'include_resource': RESOURCE_DATA},
  }
  response = service.subscriptions().create(body=BODY).execute()
  print(response)

موارد زیر را جایگزین کنید:

  • SPACE_ID: نام فضا که می‌توانید آن را از روش spaces.list در Chat API یا از نشانی وب فضا دریافت کنید.
  • ‫TOPIC_NAME: نام کامل موضوع Pub/Sub که در پروژه Cloud خود ایجاد کرده‌اید. قالب‌بندی‌شده به‌صورت projects/PROJECT_ID/topics/TOPIC_ID.
  • RESOURCE_DATA: مقدار بولی که مشخص می‌کند آیا اشتراک شامل داده‌های منبع در بار مفید است یا نه:

    • True: شامل همه داده‌های منبع است. برای محدود کردن فیلدهای گنجانده‌شده، فیلد fieldMask را اضافه کنید و حداقل یک فیلد برای منبع تغییریافته مشخص کنید. فقط اشتراک‌های منابع Chat از گنجاندن داده‌های منبع پشتیبانی می‌کنند.
    • False: داده‌های منبع را شامل نمی‌شود.

مشترک شدن در همه رویدادهای Chat در سازمان Google Workspace به‌عنوان برنامه Google Chat

اشتراک مشتری به برنامه Chat شما اجازه می‌دهد رویدادهای فضا و رویدادهای کاربر را در کل سازمان Google Workspace پایش کند.

برای جزئیات بیشتر درباره نحوه تحویل رویدادها برای اشتراک‌های مشتری، ازجمله تحویل رویداد در فضاهای تحت مدیریت سازمان‌های خارجی، به محدودیت‌های اشتراک مشتری و رفتارهای تحویل مراجعه کنید.

الزامات و محدودیت‌ها

  • اصالت‌سنجی: اصالت‌سنجی به‌عنوان برنامه Chat با تأیید یک‌باره سرپرست
  • SKU: سازمان Google Workspace باید حداقل یک پروانه Enterprise SKU داشته باشد. توجه داشته باشید که این الزام در مرحله «برنامه پیش‌نمای توسعه‌دهندگان نرم‌افزار» به‌طور جدی اعمال نمی‌شود، اما در آینده اعمال خواهد شد (به‌طور جداگانه اعلام خواهد شد).
  • منحصربه‌فرد بودن: برنامه Chat فقط می‌تواند یک اشتراک مشتری برای سازمان Google Workspace مشخصی ایجاد کند. یک سازمان Google Workspace می‌تواند درمجموع حداکثر پنج اشتراک مشتری داشته باشد (که توسط برنامه‌های Chat مختلف ایجاد شده است).
  • دامنه‌ها: بسته به نوع رویدادهایی که می‌خواهید دریافت کنید، به یک یا چند مورد از دامنه‌های زیر نیاز دارد:
    • ‫https://www.googleapis.com/auth/chat.app.all.spaces.readonly: برای دریافت رویدادهای مربوط به فضاها.
    • ‫https://www.googleapis.com/auth/chat.app.all.memberships.readonly: برای دریافت رویدادهای مربوط به عضویت‌ها.
    • ‫https://www.googleapis.com/auth/chat.app.all.messages.readonly: برای دریافت رویدادهای مربوط به پیام‌ها و واکنش‌ها.
    • https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly ( Developer Preview): برای دریافت رویدادهای مربوط به وضعیت خوانده شدن پیام‌ها توسط کاربران.

ایجاد اشتراک مشتری

برای ایجاد اشتراک مشتری، روش subscriptions.create را فراخوانی کنید.

نمونه کد Python زیر اشتراک مشتری ایجاد می‌کند:

Python

"""Create a customer subscription."""

from google.oauth2 import service_account
from apiclient.discovery import build

# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']

# Specify service account details.
CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
)

# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'

# The types of events to receive.
EVENT_TYPES = [
    'google.workspace.chat.message.v1.created',
    'google.workspace.chat.message.v1.updated',
    'google.workspace.chat.message.v1.deleted',
]

# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'

# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
    'workspaceevents',
    'v1beta',
    credentials=CREDENTIALS,
)

BODY = {
    'target_resource': TARGET_RESOURCE,
    'event_types': EVENT_TYPES,
    'notification_endpoint': {'pubsub_topic': TOPIC},
    'payload_options': {'include_resource': RESOURCE_DATA},
}

response = service.subscriptions().create(body=BODY).execute()
print(response)

موارد زیر را جایگزین کنید:

  • CUSTOMER_ID: شناسه مشتری. همچنین می‌توانید از نام مستعار my_customer برای سازمان Google Workspace برنامه Chat استفاده کنید.
  • ‫TOPIC_NAME: نام کامل موضوع Pub/Sub که در پروژه Cloud خود ایجاد کرده‌اید. به‌صورت projects/PROJECT_ID/topics/TOPIC_ID قالب‌بندی شد.
  • RESOURCE_DATA: مقدار بولی که مشخص می‌کند آیا اشتراک شامل داده‌های منبع در بار مفید است یا نه:
    • True: شامل همه داده‌های منبع است. برای محدود کردن فیلدهای گنجانده‌شده، فیلد fieldMask را اضافه کنید و حداقل یک فیلد برای منبع تغییریافته مشخص کنید. فقط اشتراک‌های منابع Chat از گنجاندن داده‌های منبع پشتیبانی می‌کنند.
    • False: داده‌های منبع را شامل نمی‌شود.