בדף הזה מוסבר איך ליצור אפליקציית Chat באמצעות Pub/Sub. סוג הארכיטקטורה הזה של אפליקציית Chat שימושי אם בארגון שלכם יש חומת אש, שיכולה למנוע מ-Chat לשלוח הודעות לאפליקציית Chat, או אם אפליקציית Chat משתמשת ב-Google Workspace Events API. עם זאת, לארכיטקטורה הזו יש את המגבלות הבאות, כי אפליקציות הצ'אט האלה יכולות לשלוח ולקבל רק הודעות אסינכרוניות:
- אי אפשר להשתמש בתיבות דו-שיח בהודעות. במקום זאת, אפשר להשתמש בהודעה בכרטיס.
- אי אפשר לעדכן כרטיסים נפרדים באמצעות תגובה סינכרונית. במקום זאת, מעדכנים את כל ההודעה באמצעות הקריאה לשיטה
patch
.
התרשים הבא מציג את הארכיטקטורה של אפליקציית צ'אט שנבנתה באמצעות Pub/Sub:
בתרשים שלמעלה, משתמש שמקיים אינטראקציה עם אפליקציית צ'אט של Pub/Sub, נהנה מזרימת המידע הבאה:
משתמש שולח הודעה באפליקציית Chat, בצ'אט ישיר או במרחב ב-Chat, או שמתרחש אירוע במרחב ב-Chat שבו לאפליקציית Chat יש מינוי פעיל.
ההודעה נשלחת מ-Chat לנושא Pub/Sub.
שרת אפליקציות, שהוא מערכת בענן או במקום, שמכילה את הלוגיקה של אפליקציית Chat, נרשם לנושא Pub/Sub כדי לקבל את ההודעה דרך חומת האש.
אופציונלית, אפליקציית Chat יכולה להתקשר אל Chat API כדי לפרסם הודעות באופן אסינכרוני או לבצע פעולות אחרות.
דרישות מוקדמות
Java
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- פרויקט ב-Google Cloud שהחיוב בו מופעל. כדי לבדוק אם החיוב מופעל בפרויקט קיים, אפשר לעיין במאמר אימות סטטוס החיוב של הפרויקטים. כדי ליצור פרויקט ולהגדיר חיוב, אפשר לעיין במאמר בנושא יצירת פרויקט ב-Google Cloud.
- Java 11 ואילך
- כלי ניהול החבילות Maven
Python
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- פרויקט ב-Google Cloud שהחיוב בו מופעל. כדי לבדוק אם החיוב מופעל בפרויקט קיים, אפשר לעיין במאמר אימות סטטוס החיוב של הפרויקטים. כדי ליצור פרויקט ולהגדיר חיוב, אפשר לעיין במאמר בנושא יצירת פרויקט ב-Google Cloud.
- Python 3.6 ואילך
- כלי ניהול החבילות pip
Node.js
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- פרויקט ב-Google Cloud שהחיוב בו מופעל. כדי לבדוק אם החיוב מופעל בפרויקט קיים, אפשר לעיין במאמר אימות סטטוס החיוב של הפרויקטים. כדי ליצור פרויקט ולהגדיר חיוב, אפשר לעיין במאמר בנושא יצירת פרויקט ב-Google Cloud.
- Node.js מגרסה 14 ואילך
- הכלי לניהול חבילות npm
-
פרויקט Node.js מאותחל. כדי לאתחל פרויקט חדש, יוצרים תיקייה חדשה ועוברים אליה, ואז מריצים את הפקודה הבאה בממשק שורת הפקודה:
npm init
הגדרת הסביבה
לפני שמשתמשים בממשקי Google API, צריך להפעיל אותם בפרויקט ב-Google Cloud. אפשר להפעיל ממשק API אחד או יותר בפרויקט יחיד ב-Google Cloud.במסוף Google Cloud, מפעילים את Google Chat API ואת Pub/Sub API.
הגדרת Pub/Sub
יוצרים נושא Pub/Sub שממשק Chat API יכול לשלוח אליו הודעות. מומלץ להשתמש בנושא אחד לכל אפליקציית Chat.
נותנים ל-Chat הרשאה לפרסם בנושא על ידי הקצאת התפקיד פרסום הודעות ב-Pub/Sub לחשבון השירות הבא:
chat-api-push@system.gserviceaccount.com
יוצרים חשבון שירות לאפליקציית Chat כדי לתת הרשאה ל-Pub/Sub ול-Chat, ושומרים את קובץ המפתח הפרטי בספריית העבודה.
יוצרים מינוי מסוג pull לנושא.
מקצים את התפקיד 'הרשמה ל-Pub/Sub' למינוי עבור חשבון השירות שיצרתם קודם.
כתיבת התסריט
Java
ב-CLI, מספקים פרטי כניסה לחשבון שירות:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
ב-CLI, מציינים את מזהה הפרויקט ב-Google Cloud:
export PROJECT_ID=PROJECT_ID
בממשק CLI, מציינים את מזהה המינוי של מינוי Pub/Sub שיצרתם קודם:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
בספריית העבודה, יוצרים קובץ בשם
pom.xml
.בקובץ
pom.xml
, מדביקים את הקוד הבא:בספריית העבודה, יוצרים את מבנה הספריות
src/main/java
.בספרייה
src/main/java
, יוצרים קובץ בשםMain.java
.ב-
Main.java
, מדביקים את הקוד הבא:
Python
ב-CLI, מספקים פרטי כניסה לחשבון שירות:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
ב-CLI, מציינים את מזהה הפרויקט ב-Google Cloud:
export PROJECT_ID=PROJECT_ID
בממשק CLI, מציינים את מזהה המינוי של מינוי Pub/Sub שיצרתם קודם:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
בספריית העבודה, יוצרים קובץ בשם
requirements.txt
.בקובץ
requirements.txt
, מדביקים את הקוד הבא:בספריית העבודה, יוצרים קובץ בשם
app.py
.ב-
app.py
, מדביקים את הקוד הבא:
Node.js
ב-CLI, מספקים פרטי כניסה לחשבון שירות:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
ב-CLI, מציינים את מזהה הפרויקט ב-Google Cloud:
export PROJECT_ID=PROJECT_ID
בממשק CLI, מציינים את מזהה המינוי של מינוי Pub/Sub שיצרתם קודם:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
בספריית העבודה, יוצרים קובץ בשם
package.json
.בקובץ
package.json
, מדביקים את הקוד הבא:בספריית העבודה, יוצרים קובץ בשם
index.js
.ב-
index.js
, מדביקים את הקוד הבא:
פרסום האפליקציה ב-Chat
במסוף Google Cloud, נכנסים אל תפריט > APIs & Services > Enabled APIs & Services > Google Chat API > Configuration.
מגדירים את אפליקציית Chat ל-Pub/Sub:
- בשדה App name, מזינים
Quickstart App
. - בקטע כתובת ה-URL של הדמות, מזינים
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - בשדה תיאור, מזינים
Quickstart app
. - בקטע פונקציונליות, בוחרים באפשרות הצטרפות למרחבים ולשיחות קבוצתיות.
- בקטע Connection settings, בוחרים באפשרות Cloud Pub/Sub ומדביקים את השם של נושא Pub/Sub שיצרתם קודם.
- בקטע חשיפה, בוחרים באפשרות הפיכת האפליקציה הזו של Google Chat לזמינה לאנשים ולקבוצות ספציפיים בדומיין ומזינים את כתובת האימייל.
- בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.
- בשדה App name, מזינים
לוחצים על שמירה.
האפליקציה מוכנה לקבל הודעות ב-Chat ולענות עליהן.
הפעלת הסקריפט
ב-CLI, עוברים לספריית העבודה ומריצים את הסקריפט:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
כשמריצים את הקוד, האפליקציה מתחילה להאזין להודעות שפורסמו בנושא Pub/Sub.
בדיקת אפליקציית Chat
כדי לבדוק את אפליקציית Chat, פותחים מרחב לצ'אט ישיר עם אפליקציית Chat ושולחים הודעה:
פותחים את Google Chat באמצעות חשבון Google Workspace שציינתם כשנוספתם כבודקים מהימנים.
- לוחצים על צ'אט חדש.
- בשדה הוספת אדם אחד או יותר, מקלידים את השם של אפליקציית Chat.
בוחרים את אפליקציית Chat מתוך התוצאות. ייפתח צ'אט ישיר.
- בצ'אט הישיר החדש עם האפליקציה, כותבים
Hello
ולוחצים עלenter
.
כדי להוסיף בודקים מהימנים ולקבל מידע נוסף על בדיקת תכונות אינטראקטיביות, אפשר לעיין במאמר בנושא בדיקת תכונות אינטראקטיביות באפליקציות ל-Google Chat.
פתרון בעיות
כשמוחזרת שגיאה מאפליקציית Google Chat או מכרטיס, מוצגת בממשק של Chat ההודעה 'משהו השתבש'. או 'לא ניתן לעבד את הבקשה שלך'. לפעמים בממשק המשתמש של Chat לא מוצגת הודעת שגיאה, אבל אפליקציית Chat או הכרטיס מפיקים תוצאה לא צפויה. לדוגמה, יכול להיות שהודעה בכרטיס לא תופיע.
יכול להיות שלא תוצג הודעת שגיאה בממשק המשתמש של Chat, אבל אם הפעלתם את רישום השגיאות באפליקציות של Chat, תוכלו לראות הודעות שגיאה תיאוריות ונתוני יומן שיעזרו לכם לתקן את השגיאות. לקבלת עזרה בצפייה בשגיאות, באיתור באגים ובתיקון שלהן, אפשר לעיין במאמר פתרון בעיות ב-Google Chat.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, מומלץ למחוק את פרויקט Cloud.
- במסוף Google Cloud, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete .
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
נושאים קשורים
כדי להוסיף עוד תכונות לאפליקציית Chat, אפשר לעיין במאמרים הבאים: