این صفحه نحوه ایجاد یک برنامه چت با استفاده از Pub/Sub را توضیح میدهد. این نوع معماری برای یک برنامه چت در صورتی مفید است که سازمان شما دارای فایروال باشد که میتواند از ارسال پیامهای Chat به برنامه چت شما جلوگیری کند، یا اگر برنامه چت از Google Workspace Events API استفاده کند. با این حال، این معماری به دلیل این واقعیت که این برنامههای چت فقط میتوانند پیامهای ناهمزمان ارسال و دریافت کنند، محدودیتهای زیر را دارد:
- نمیتوان از دیالوگها در پیامها استفاده کرد. در عوض، از پیام کارتی استفاده کنید.
- نمیتوان کارتهای جداگانه را با پاسخ همزمان بهروزرسانی کرد. در عوض، کل پیام را با فراخوانی متد
patchبهروزرسانی کنید.
نمودار زیر معماری یک برنامه چت ساخته شده با Pub/Sub را نشان میدهد:
در نمودار قبلی، کاربری که با یک برنامه Pub/Sub Chat در تعامل است، جریان اطلاعات زیر را دارد:
یک کاربر پیامی را در چت به یک برنامه چت، چه در پیام مستقیم و چه در فضای چت، ارسال میکند، یا رویدادی در فضای چت رخ میدهد که برنامه چت برای آن اشتراک فعال دارد.
چت، پیام را به یک موضوع Pub/Sub ارسال میکند.
یک سرور برنامه، که میتواند یک سیستم ابری یا داخلی باشد و شامل منطق برنامه چت باشد، برای دریافت پیام از طریق فایروال، در موضوع Pub/Sub مشترک میشود.
به صورت اختیاری، برنامه چت میتواند API چت را برای ارسال پیامها یا انجام سایر عملیات به صورت غیرهمزمان فراخوانی کند.
پیشنیازها
هنگام ساخت برنامه چت خود، باید عبارت «این برنامه چت را به عنوان یک افزونه Google Workspace بسازید» را در صفحه پیکربندی API چت در کنسول Google Cloud پاک کنید. به «انتشار برنامه در Google Chat» مراجعه کنید.
جاوا
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- یک پروژه Google Cloud با قابلیت پرداخت فعال. برای بررسی اینکه آیا پرداخت در یک پروژه موجود فعال است یا خیر، به تأیید وضعیت پرداخت پروژههای خود مراجعه کنید. برای ایجاد یک پروژه و تنظیم پرداخت، به ایجاد یک پروژه Google Cloud مراجعه کنید.
- جاوا ۱۱ یا بالاتر
- ابزار مدیریت بسته Maven
پایتون
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- یک پروژه Google Cloud با قابلیت پرداخت فعال. برای بررسی اینکه آیا پرداخت در یک پروژه موجود فعال است یا خیر، به تأیید وضعیت پرداخت پروژههای خود مراجعه کنید. برای ایجاد یک پروژه و تنظیم پرداخت، به ایجاد یک پروژه Google Cloud مراجعه کنید.
- پایتون ۳.۶ یا بالاتر
- ابزار مدیریت بسته pip
نود جی اس
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- یک پروژه Google Cloud با قابلیت پرداخت فعال. برای بررسی اینکه آیا پرداخت در یک پروژه موجود فعال است یا خیر، به تأیید وضعیت پرداخت پروژههای خود مراجعه کنید. برای ایجاد یک پروژه و تنظیم پرداخت، به ایجاد یک پروژه Google Cloud مراجعه کنید.
- Node.js نسخه ۱۴ یا بالاتر
- ابزار مدیریت بسته npm
- یک پروژه Node.js مقداردهی اولیه شده. برای مقداردهی اولیه یک پروژه جدید، یک پوشه جدید ایجاد کرده و به آن بروید، سپس دستور زیر را در رابط خط فرمان خود اجرا کنید:
npm init
محیط را تنظیم کنید
قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. میتوانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.در کنسول گوگل کلود، Google Chat API و Pub/Sub API را فعال کنید.
راهاندازی Pub/Sub
یک تاپیک Pub/Sub ایجاد کنید که Chat API بتواند به آن پیام ارسال کند. توصیه میکنیم برای هر برنامه چت از یک تاپیک واحد استفاده کنید.
با اختصاص نقش ناشر Pub/Sub به حساب سرویس زیر ، به Chat اجازه انتشار در موضوع را بدهید :
chat-api-push@system.gserviceaccount.comیک حساب کاربری سرویس برای برنامه چت ایجاد کنید تا با Pub/Sub و Chat مجوزدهی شود و فایل کلید خصوصی را در دایرکتوری کاری خود ذخیره کنید.
نقش مشترک منتشرکننده/زیرمشترک را در اشتراک حساب سرویسی که قبلاً ایجاد کردهاید، تعیین کنید .
فیلمنامه را بنویسید
جاوا
در یک رابط خط فرمان (CLI)، اعتبارنامههای حساب سرویس را ارائه دهید :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHدر یک رابط خط فرمان (CLI)، شناسه پروژه Google Cloud را ارائه دهید:
export PROJECT_ID=PROJECT_IDدر یک رابط خط فرمان (CLI)، شناسه اشتراک (sub) را برای اشتراک Pub/Sub که قبلاً ایجاد کردهاید، ارائه دهید:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDدر دایرکتوری کاری خود، فایلی با نام
pom.xmlایجاد کنید.در فایل
pom.xml، کد زیر را قرار دهید:در دایرکتوری کاری خود، ساختار دایرکتوری
src/main/javaرا ایجاد کنید.در پوشه
src/main/java، فایلی با نامMain.javaایجاد کنید.در
Main.java، کد زیر را قرار دهید:
پایتون
در یک رابط خط فرمان (CLI)، اعتبارنامههای حساب سرویس را ارائه دهید :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHدر یک رابط خط فرمان (CLI)، شناسه پروژه Google Cloud را ارائه دهید:
export PROJECT_ID=PROJECT_IDدر یک رابط خط فرمان (CLI)، شناسه اشتراک (sub) را برای اشتراک Pub/Sub که قبلاً ایجاد کردهاید، ارائه دهید:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDدر دایرکتوری کاری خود، فایلی با نام
requirements.txtایجاد کنید.در فایل
requirements.txt، کد زیر را وارد کنید:در دایرکتوری کاری خود، فایلی با نام
app.pyایجاد کنید.در
app.py، کد زیر را قرار دهید:
نود جی اس
در یک رابط خط فرمان (CLI)، اعتبارنامههای حساب سرویس را ارائه دهید :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHدر یک رابط خط فرمان (CLI)، شناسه پروژه Google Cloud را ارائه دهید:
export PROJECT_ID=PROJECT_IDدر یک رابط خط فرمان (CLI)، شناسه اشتراک (sub) را برای اشتراک Pub/Sub که قبلاً ایجاد کردهاید، ارائه دهید:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDدر دایرکتوری کاری خود، فایلی با نام
package.jsonایجاد کنید.در فایل
package.json، کد زیر را قرار دهید:در دایرکتوری کاری خود، فایلی با نام
index.jsایجاد کنید.در
index.js، کد زیر را قرار دهید:
انتشار برنامه در چت
در کنسول گوگل کلود، به منو > APIها و خدمات > APIها و خدمات فعالشده > Google Chat API > پیکربندی بروید.
برنامه چت را برای Pub/Sub پیکربندی کنید:
- پاک کردن «این برنامه گپ را به عنوان یک افزونه Google Workspace بسازید» . یک کادر محاورهای باز میشود که از شما میخواهد تأیید کنید. در کادر محاورهای، روی غیرفعال کردن کلیک کنید.
- در قسمت نام برنامه ،
Quickstart Appوارد کنید. - در قسمت آدرس اینترنتی آواتار ،
https://developers.google.com/chat/images/quickstart-app-avatar.pngرا وارد کنید. - در قسمت توضیحات ،
Quickstart appوارد کنید. - در بخش عملکرد ، گزینه «پیوستن به فضاها و مکالمات گروهی» را انتخاب کنید.
- در قسمت تنظیمات اتصال (Connection settings) ، گزینه Cloud Pub/Sub را انتخاب کنید و نام موضوع Pub/Sub که قبلاً ایجاد کردهاید را جایگذاری کنید.
- در قسمت «قابلیت مشاهده» ، گزینه «این برنامه چت گوگل را برای افراد و گروههای خاص در دامنه خود در دسترس قرار دهید» را انتخاب کنید و آدرس ایمیل خود را وارد کنید.
- در قسمت گزارشها ، گزینه ثبت خطاها را برای ثبت گزارشها انتخاب کنید.
روی ذخیره کلیک کنید.
این برنامه آماده دریافت و پاسخ به پیامها در چت است.
اسکریپت را اجرا کنید
در یک رابط خط فرمان (CLI)، به دایرکتوری کاری خود بروید و اسکریپت را اجرا کنید:
جاوا
mvn compile exec:java -Dexec.mainClass=Main
پایتون
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
نود جی اس
npm install
npm start
وقتی کد را اجرا میکنید، برنامه شروع به گوش دادن به پیامهای منتشر شده در تاپیک Pub/Sub میکند.
برنامه چت خود را آزمایش کنید
برای آزمایش برنامه چت خود، یک فضای پیام مستقیم با برنامه چت باز کنید و پیامی ارسال کنید:
با استفاده از حساب Google Workspace که هنگام اضافه کردن خود به عنوان یک آزمایشگر مورد اعتماد ارائه دادید، Google Chat را باز کنید.
- روی گپ جدید کلیک کنید.
- در فیلد «افزودن ۱ یا چند نفر» ، نام برنامه چت خود را تایپ کنید.
برنامه چت خود را از بین نتایج انتخاب کنید. یک پیام مستقیم باز میشود.
- در پیام مستقیم جدید با برنامه،
Helloرا تایپ کنید وenterفشار دهید.
برای افزودن آزمایشکنندگان مورد اعتماد و کسب اطلاعات بیشتر در مورد آزمایش ویژگیهای تعاملی، به بخش «آزمایش ویژگیهای تعاملی برای برنامههای Google Chat» مراجعه کنید.
عیبیابی
وقتی یک برنامه یا کارت چت گوگل خطایی را برمیگرداند، رابط چت پیامی با عنوان «مشکلی پیش آمده است» یا «درخواست شما قابل پردازش نیست» نمایش میدهد. گاهی اوقات رابط کاربری چت هیچ پیام خطایی را نمایش نمیدهد، اما برنامه یا کارت چت نتیجه غیرمنتظرهای را ایجاد میکند؛ برای مثال، ممکن است پیام کارت ظاهر نشود.
اگرچه ممکن است پیام خطا در رابط کاربری چت نمایش داده نشود، پیامهای خطای توصیفی و دادههای گزارش برای کمک به شما در رفع خطاها هنگام فعال بودن ثبت خطا برای برنامههای چت در دسترس هستند. برای کمک به مشاهده، اشکالزدایی و رفع خطاها، به عیبیابی و رفع خطاهای گوگل چت مراجعه کنید.
تمیز کردن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش، توصیه میکنیم پروژه Cloud را حذف کنید.
- در کنسول گوگل کلود، به صفحه مدیریت منابع بروید. روی منو > مدیریت و دسترسی به منابع (IAM & Admin) > مدیریت منابع (Manage Resources) کلیک کنید.
- در لیست پروژهها، پروژهای را که میخواهید حذف کنید انتخاب کنید و سپس روی «حذف کلیک کنید.
- در کادر محاورهای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن (Shut down) کلیک کنید.
مباحث مرتبط
برای افزودن ویژگیهای بیشتر به برنامه چت خود، موارد زیر را مشاهده کنید: