בדף הזה מוסבר איך להגדיר תגובה לפעולה מאתר אחר (webhook) כדי לשלוח הודעות אסינכרוניות למרחב המשותף ב-Chat באמצעות טריגרים חיצוניים. לדוגמה, תוכלו להגדיר אפליקציית מעקב שתיידע את אנשי הצוות התורנים ב-Chat כשהשרת יורד. במאמר שליחת הודעה מוסבר איך שולחים הודעה סינכרונית עם אפליקציית Chat.
כשמשתמשים בארכיטקטורה מהסוג הזה, המשתמשים לא יכולים לתקשר עם התגובה לפעולה מאתר אחר (webhook) או עם האפליקציה החיצונית המחוברת, כי התקשורת היא חד-כיוונית. תגובות לפעולה מאתר אחר (webhook) לא נחשבות לאינטראקציות. הם לא יכולים לענות להודעות של משתמשים או לקבל אירועי אינטראקציה באפליקציות צ'אט. כדי לענות להודעות צריך ליצור אפליקציה ל-Chat במקום webhook.
מבחינה טכנית, תגובה לפעולה מאתר אחר (webhook) היא לא אפליקציה של Chat – כי התגובה לפעולה מאתר אחר מקשרת אפליקציות באמצעות בקשות HTTP רגילות, אבל הדף הזה מתייחס אליה כאפליקציה של Chat, כדי לפשט את הדברים. כל תגובה לפעולה מאתר אחר (webhook) פועלת רק במרחב המשותף ב-Chat שבו היא רשומה. webhooks נכנסים פועלים בצ'אטים אישיים, אבל רק אם אפליקציות צ'אט מופעלות אצל כל המשתמשים. לא ניתן לפרסם webhooks ב-Google Workspace Marketplace.
בתרשים הבא מוצגת הארכיטקטורה של תגובה לפעולה מאתר אחר (webhook) שמחוברת ל-Chat:
בתרשים שלמעלה, האפליקציות של Chat כוללות את זרימת המידע הבאה:
- הלוגיקה של אפליקציית Chat מקבלת מידע משירותים חיצוניים של צד שלישי, כמו מערכת לניהול פרויקטים או כלי ליצירת כרטיסים.
- הלוגיקה של אפליקציית Chat מתארחת בענן או במערכת מקומית שיכולה לשלוח הודעות באמצעות webhook URL למרחב משותף ספציפי ב-Chat.
- המשתמשים יכולים לקבל הודעות מאפליקציית Chat במרחב המשותף הספציפי ב-Chat, אבל לא להשתמש באפליקציית Chat.
דרישות מוקדמות
Python
- Python 3.10.7 ואילך.
- חשבון Google Workspace עם גישה ל-Chat.
- פרויקט ב-Google Cloud.
- מוודאים שהפעלתם את החיוב בפרויקט ב-Cloud. איך מאמתים את סטטוס החיוב של הפרויקטים
- מרחב משותף קיים ב-Chat.
ספריית
httplib2
. אם צריך, מריצים את הפקודה הבאה של ממשק שורת הפקודה (CLI) כדי להתקין את הספרייה באמצעותpip
:pip install httplib2
Node.js
- Node.js ו-npm מותקנים.
- חשבון Google Workspace עם גישה ל-Chat.
- פרויקט ב-Google Cloud.
- מוודאים שהפעלתם את החיוב בפרויקט ב-Cloud. איך מאמתים את סטטוס החיוב של הפרויקטים
- מרחב משותף קיים ב-Chat.
Java
- Java 11 ומעלה.
- Apache Maven
- חשבון Google Workspace עם גישה ל-Chat.
- פרויקט ב-Google Cloud.
- מוודאים שהפעלתם את החיוב בפרויקט ב-Cloud. איך מאמתים את סטטוס החיוב של הפרויקטים
- מרחב משותף קיים ב-Chat.
Apps Script
- חשבון Google Workspace עם גישה ל-Chat.
- מרחב משותף קיים ב-Chat.
יצירת webhook
כדי ליצור תגובה לפעולה מאתר אחר (webhook), צריך לרשום אותה במרחב המשותף ב-Chat שבו רוצים לקבל הודעות, ואז לכתוב סקריפט ששולח הודעות.
רישום ה-webhook הנכנס
- פותחים את Chat בדפדפן. אי אפשר להגדיר תגובות לפעולה מאתר אחר (webhook) דרך אפליקציית Chat לנייד.
- עוברים למרחב המשותף שבו רוצים להוסיף תגובה לפעולה מאתר אחר (webhook).
- ליד השם של המרחב המשותף, לוחצים על החץ להרחבת התצוגה ' ' ואז על אפליקציות ושילובים.
- לוחצים על הוספת webhooks.
- בשדה Name (שם), מזינים
Quickstart Webhook
. - בשדה כתובת URL של הדמות, מזינים
https://developers.google.com/chat/images/chat-product-icon.png
. - לוחצים על שמירה.
- כדי להעתיק את ה-webhook URL, לוחצים על More ואז על Copy link.
כתיבת סקריפט של תגובה לפעולה מאתר אחר (webhook)
סקריפט של תגובה לפעולה מאתר אחר (webhook) לדוגמה שולח הודעה למרחב המשותף שבו ה-webhook רשום. לשם כך, הוא שולח בקשת POST
ל-webhook URL. התגובה מ-Chat API כוללת את המופע של Message
.
יש לבחור שפה כדי לקבל מידע על יצירת סקריפט של תגובה לפעולה מאתר אחר (webhook):
Python
בספריית העבודה, יוצרים קובץ בשם
quickstart.py
.ב-
quickstart.py
, מדביקים את הקוד הבא:מחליפים את הערך של המשתנה
WEBHOOK_URL
ב-webhook URL שהעתקתם כשרשמתם את ה-webhook.
Node.js
בספריית העבודה, יוצרים קובץ בשם
index.js
.ב-
index.js
, מדביקים את הקוד הבא:מחליפים את הערך של המשתנה
webhookURL
ב-webhook URL שהעתקתם כשרשמתם את ה-webhook.
Java
בספריית העבודה, יוצרים קובץ בשם
pom.xml
.ב-
pom.xml
, מעתיקים ומדביקים את הפריטים הבאים:בספריית העבודה, יוצרים את מבנה הספריות הבא:
src/main/java
.בספרייה
src/main/java
, יוצרים קובץ בשםApp.java
.ב-
App.java
, מדביקים את הקוד הבא:מחליפים את הערך של המשתנה
URL
בכתובת ה-webhook URL שהעתקתם כשרשמתם את ה-webhook.
Apps Script
פותחים דפדפן ונכנסים אל Apps Script.
לוחצים על פרויקט חדש.
מדביקים את הקוד הבא:
מחליפים את הערך של המשתנה
url
בכתובת ה-webhook URL שהעתקתם כשרשמתם את ה-webhook.
הפעלת הסקריפט של תגובה לפעולה מאתר אחר (webhook)
ב-CLI, מריצים את הסקריפט:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- לוחצים על Run.
כשמריצים את הקוד, התגובה לפעולה מאתר אחר (webhook) שולחת הודעה למרחב המשותף שבו היא רשמת.
התחלה של שרשור הודעות או מענה להן
צריך לציין את הקוד
spaces.messages.thread.threadKey
כחלק מגוף הבקשה לצ'אט. הערכים הבאים יכולים לשמש בתור התחלה של שרשור, בהתאם לתשובה שלthreadKey
:כשאתם מתחילים שרשור, צריך להגדיר את
threadKey
כמחרוזת שרירותית, אבל לרשום את הערך הזה כדי לפרסם תשובה לשרשור.כשעונים לשרשור, צריך לציין את
threadKey
שהוגדר כשהשרשור הופעל. לדוגמה, כדי לפרסם תשובה בשרשור שבו ההודעה הראשונה השתמשה ב-MY-THREAD
, צריך להגדיר אתMY-THREAD
.
הגדרת התנהגות השרשור אם ה-
threadKey
שצוין לא נמצא:לענות לשרשור או להתחיל שרשור חדש. מוסיפים את הפרמטר
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
ל-webhook URL. העברת הפרמטר הזה של כתובת ה-URL גורמת ל-Chat לחפש שרשור קיים באמצעותthreadKey
שצוין. אם תימצא תשובה, ההודעה תפורסם כתשובה לשרשור הזה. אם לא נמצאו הודעות, ההודעה תתחיל שרשור חדש שקשור לאותוthreadKey
.לענות לשרשור או לא לעשות כלום. מוסיפים את הפרמטר
messageReplyOption=REPLY_MESSAGE_OR_FAIL
ל-webhook URL. העברת הפרמטר הזה של כתובת ה-URL גורמת ל-Chat לחפש שרשור קיים באמצעותthreadKey
שצוין. אם תימצא תשובה, ההודעה תפורסם כתשובה לשרשור הזה. אם לא נמצאו הודעות, ההודעה לא תישלח.
מידע נוסף זמין כאן:
messageReplyOption
.
דוגמת הקוד הבאה מתחילה בשרשור הודעות או עונה לו: