Hubot הוא דרך מצוינת לבנות אפליקציה שעובדת בכמה פלטפורמות. באמצעות מתאם ה-Hub Chat של Google, תוכלו להשתמש בקלות באפליקציות Hubot שלכם ב-Google Chat. המתאם מאמת הודעות ב-Hub ומגיש את התשובות.
המתאם של Google Chat Hubot תומך בשני סוגים של נקודות קצה:
- HTTP
- Cloud Pub/Sub
המדריך הזה מסביר איך משיקים אפליקציית Hubot ב-Google Chat באמצעות כל סוג של נקודת קצה.
התקנה
פעלו לפי ההוראות במאמר תחילת העבודה עם Hubot כדי להוריד ולהתקין את הכלים הנחוצים: Node.js, npm ו-Hubot מחולל for Yeoman.
אתם יכולים לנסות ליצור מכונה חדשה של Hubot שמשתמשת במתאם המעטפת המובנה, להתקין סקריפטים של Hubbot, לשחק איתה ולחוות את הסביבה העסקית של Hubo ולפתח אפליקציה של Hubot.
שימוש במתאם של Chat ב-Google Chat
בקטע הזה מוסבר איך יוצרים אפליקציית Hubot שמשתמשת במתאם Google Chat, פורסים אותה ב-AppEngine ומפרסמים את האפליקציה ב-Google Chat. תוכלו גם לפרוס את האפליקציה בכל מערכת שתרצו, מלבד AppEngine.
מתאם ה-Hub Chat של Google תומך בשני מצבים: HTTP ו-Cloud Pub/Sub. מצב HTTP מריץ שרת אינטרנט אקספרס ומאזין לאירועים ביציאה שצוינה על ידי המשתמש. מצב Cloud Pub/Sub יוצר מנוי ב-Pub/Sub ושולף אירועים ממינוי למשתמש שצוין. בשני המצבים של קבלת הודעות מ-Google Chat, שני המצבים יוצרים אובייקט של HangoutsChatMessage (שמרחיב את האובייקט של Hub ב-Hub) ומעביר אותו לסקריפט של Hubot. התשובה מהסקריפט של Hubot פורסמה במרחב הצ'אט או בצ'אט ב-Google Chat, שממנה האירוע של ההודעה המקורית פורסם באפליקציה.
יצירת מופע של Hubot
לפני שממשיכים, צריך להגדיר את Node.js, מנהל החבילות של npm ואת המחולל של Yoman ל-Hub.
נניח שאתם רוצים ליצור אפליקציה בשם "myhubot". מתחילים ביצירת ספרייה חדשה, ואז יוצרים מופע של Hubot.
$> mkdir myhubot
$> cd myhubot
$> yo hubot
בשלב זה יימן שואל כמה שאלות לגבי מי שיוצר את האפליקציה ובאיזה מתאם להשתמש. יש לציין את הערך google-hangouts-chat
של המתאם.
לחלופין, אפשר להתקין את המתאם בנפרד באמצעות הפקודה הבאה:
$> npm install --save hubot-google-hangouts-chat
ב-Hub, ההתנהגות בפועל של האפליקציה מיושמת באמצעות סקריפטים. Hub מכיל סקריפט לדוגמה שאפשר להשתמש בו לבדיקה. אחרי שתגדירו הכל, תוכלו להתאים אישית ולהוסיף סקריפטים משלכם כדי ליישם את ההתנהגות הרצויה באפליקציה.
הגדרת האפשרויות של המתאם ב-Google Chat
האפשרויות מועברים למתאם Google Chat באמצעות משתני סביבה.
חשבון שירות
כדי להשתמש במתאם, צריך להגדיר חשבון שירות לאפליקציה. תוכלו להיעזר במדריך שימוש בחשבונות שירות כדי ליצור חשבון שירות ולהוריד את קובץ ה-JSON שמכיל את המפתח שלכם. לאחר מכן מגדירים את הנתיב למפתח באמצעות משתנה סביבה:
# Point to the private key json file of the service account you created. $> export GOOGLE_APPLICATION_CREDENTIALS='Path to the service account key json file'
אפשרויות HTTP
אין צורך בהגדרות נוספות כדי להפעיל את המתאם במצב HTTP. המתאם משתמש בשרת האקספרס של Hubot, שפועל ביציאה 8080
כברירת מחדל. כדי לשנות את היציאה, צריך להגדיר את משתנה הסביבה PORT
:
# Port number, 8080 by default. $> export PORT=8080
אפשרויות Cloud Pub/Sub
במאמר הגדרת נקודת סיום של Pub/Sub מוסבר איך מגדירים פרויקט ב-GCP, נושא ב-Cloud Pub/Sub, מינוי וחשבון שירות שישמשו את האפליקציה שלכם. מתעלמים מהקוד לדוגמה שבקישור. בפסקאות הבאות יוצרים אפליקציית Hubot עם מתאם Google Chat.
כדי להשתמש במתאם Google Chat במצב Pub/Sub, אתם צריכים להגדיר את האפשרויות הבאות:
# To toggle the adapter to Pub/Sub mode. $> export IS_PUBSUB=true # Set the IDs of the project and subscription you created. $> export PUBSUB_PROJECT_ID='GCP Project ID' $> export PUBSUB_SUBSCRIPTION_ID='GCP Cloud Pub/Sub Subscription ID'
הפעלה באופן מקומי
כדי להריץ מכונה של Hubot באופן מקומי, מריצים את הפקודה המתאימה מהספרייה myhubot
:
# For HTTP mode
$> bin/hubot -a google-hangouts-chat
# For Cloud Pub/Sub mode
$> bin/hubot -d -a google-hangouts-chat
אם המתאם של Google Chat Hub הופעל מחדש, ההודעה הבאה תופיע במסוף:
Hangouts Chat adapter initialized successfully
בהתאם למידע שהגדרתם, כמו מתאם HTTP או מתאם Cloud Pub/Sub, יכול להופיע על המסך מידע רלוונטי נוסף.
פריסה ב-AppEngine
בצעו את ההוראות שמפורטות ב-Quickstart של AppEngine כדי להגדיר את פרויקט GCP ואת סביבת הפיתוח.
אחרי שמשלימים את ההגדרה, צריך לבצע את הפעולות הבאות כדי להגדיר ולפרוס את ה-Hubot ב-AppEngine.
יצירת app.yaml
קודם כול, יוצרים קובץ app.yaml בספריית Hubot. התוכן יהיה דומה לדוגמה הבאה:
runtime: nodejs8 env_variables: PORT: 8080
הגדרת סביבה
בשלב הבא, מבצעים את ההוראות בדף הזה כדי להגדיר משתני סביבה.
יצירת package.json
לבסוף, יוצרים קובץ package.json
שמציין את גרסת ה-צומת.js ואת מאפיין הסקריפטים ששימש להפעלת האפליקציה.
- מציינים את גרסת ה-Node.js שבה תרצו להשתמש עם המאפיין engines בקובץ package.json.
- AppEngine משתמשת ב-
npm start
להפעלת האפליקציה שלך. יש להגדיר את המאפיין scripts בקובץ package.json כך ש-npm יתחיל להפעיל את Hubot.
# Sample snippet of package.json file "dependencies" : { "hubot": "^3.1.1", "hubot-google-hangouts-chat": "^3", # more deps... } "scripts": { "start": "bin/hubot -a google-hangouts-chat" }, "engines": { "node": ">=8" } # Once you've set up everything, deploy the app in AppEngine $> gcloud app deploy
פרסום ב-Google Chat
אם רוצים לפרסם אפליקציות ב-Google Chat באמצעות מסוף Google Cloud, נכנסים לדף פרסום אפליקציות. להגדיר את נקודת הקצה (HTTP או Cloud Pub/Sub) המתאימה בדף ההגדרות של האפליקציה. אם כבר יצרתם פרויקט GCP בשלב הקודם כדי לפרוס את המכונה של Hubot ב-AppEngine, תוכלו להשתמש באותו פרויקט GCP כדי לפרסם את האפליקציה.
בדיקת האפליקציה
אחרי שתפרסמו את האפליקציה, תוכלו להוסיף אותה למרחב משותף או להתחיל איתה צ'אט אישי ב-Google Chat. האפליקציה צריכה להגיב להודעות שנשלחות אליה. Hubot מגיע עם סקריפט לדוגמה בתיקייה scripts
. צריך לבטל את ההצהרה על הקוד בסקריפט לדוגמה, שמגיב להודעות שמכילות את המילה 'Tagger' ולהפעיל מחדש את האפליקציה.
אם קראתם לאפליקציה "myhubot" והוספתם אותה למרחב משותף, תוכלו לשלוח אותה כמוצג למטה:
@myhubot badger
אתם אמורים לראות את התגובה הבאה מהאפליקציה:
Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS
עכשיו אפשר להתאים אישית או להוסיף סקריפטים של Hubot למכונה של Hubot כדי להטמיע את הפונקציונליות הרצויה לאפליקציה. תוכלו להיעזר במאגר של GitHub במתאם ל-Google Chat כדי לראות דוגמאות לסקריפטים ספציפיים ל-Google Chat.