בדף הזה מוסבר איך לקשר אפליקציית Google Chat לשירות או לכלי מחוץ ל-Google Chat. אפליקציות Chat הן חזקות בפני עצמן, אבל הן עובדות לרוב בשילוב עם מערכות אחרות ודורשות אפליקציות נלוות כדי לחבר חשבונות, לאשר גישה לנתונים, להציג נתונים נוספים או להגדיר את העדפות המשתמשים.
דרישות מוקדמות
אפליקציית Google Chat שמופעלות בה תכונות אינטראקטיביות. כדי ליצור אפליקציית Chat אינטראקטיבית, תוכלו להיעזר באחד מהמדריכים למתחילים הבאים, בהתאם לארכיטקטורת האפליקציה שבה אתם רוצים להשתמש:- שירות HTTP באמצעות Google Cloud Functions
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
בקשה מהמשתמש להגדרת אפליקציית Chat
אם כדי להשלים בקשה נדרשת הגדרה נוספת שלא ניתן להשלים ישירות באפליקציית Chat, אפשר להחזיר למשתמש כתובת URL של הגדרה כחלק מתשובה רגילה, או להציג אותה באופן פרטי, בפורמט הבא:
{ "actionResponse": { "type": "REQUEST_CONFIG", "url": "CONFIGURATION_URL" } }
הפקודה הזו מורה ל-Google Chat להציג למשתמש הנחיה פרטית, שבה CONFIGURATION_URL
הוא קישור למשתמש שצריך להיכנס אליו כדי לבצע אימות, הרשאה או הגדרה נוספים. תגובה מסוג REQUEST_CONFIG
לא יכולה להתקיים יחד עם הודעת תגובה רגילה. המערכת מתעלמת מטקסט, מכרטיסים וממאפיינים אחרים.
השלמת בקשת ההגדרה
כל אירוע אינטראקציה מסוג MESSAGE
שמתקבל באפליקציית Chat כולל גם את השדה configCompleteRedirectUrl
. צריך לקודד את כתובת ה-URL הזו בכתובת ה-URL של ההגדרה, כדי שאפשר יהיה להשתמש בה בסיום התהליך. ההפניה האוטומטית לכתובת ה-URL הזו מאותתת ל-Google Chat שהבקשה להגדרה בוצעה.
כשאפליקציית Chat מתחילה לפעול, התהליך תלוי בהודעה הספציפית שהתקבלה. בתגובה להודעה כמו @app help
, אפליקציית Chat אמורה להשיב בהודעה בלי צורך בהגדרות נוספות.
כשמשתמש מופנה אוטומטית לכתובת configCompleteRedirectUrl
שצוינה בהודעה המקורית, מערכת Google Chat מבצעת את השלבים הבאים:
- מוחקים את ההודעה שהוצגה למשתמש שהתחיל את הקריאה.
- להפוך את ההודעה המקורית ל'גלויה לכולם', כך שכל המשתתפים במרחב המשותף יוכלו לראות אותה.
- שולחים את ההודעה המקורית שוב לאותו אפליקציית Chat.
כניסה ל-configCompleteRedirectUrl
משפיעה רק על הודעה אחת של משתמש.
אם משתמש ניסה לשלוח הודעה באפליקציית Chat כמה פעמים כתוצאה מכך קיבל כמה הנחיות, לחיצה על הנחיה מסוימת והשלמת תהליך האימות וההגדרה משפיעים רק על ההודעה הספציפית הזו. הודעות אחרות לא משתנות.
כשאירוע אינטראקציה מסוג MESSAGE
נשלח מחדש באופן הזה, הוא אמור להיות זהה לאירוע המקורי. עם זאת, יש מצבים מסוימים שבהם אירועי אינטראקציה מסוג MESSAGE
עשויים להיות שונים. לדוגמה, כשהודעה מזכירה גם את אפליקציית צ'אט א' וגם את אפליקציית צ'אט ב', המשתמש יכול לערוך את ההודעה אם אפליקציית צ'אט א' מגיבה בהודעה רגילה לפני האימות עם אפליקציית צ'אט ב'. במקרה כזה, אפליקציית הצ'אט השנייה מקבלת את טקסט ההודעה הערוך אחרי שהמשתמש משלים את תהליך האימות וההגדרה.
אימות המשתמש ב-Chat מחוץ ל-Chat
במקרים מסוימים, כמו בקשה להרשאת OAuth ל-API, האפליקציה צריכה לקשר לכתובת URL מחוץ ל-Chat תוך שמירה על זהות המשתמש. במקרים כאלה, הדרך הטובה ביותר לזהות את המשתמש היא להגן על אפליקציית היעד באמצעות כניסה באמצעות חשבון Google.
כדי לקבל את מזהה המשתמש, משתמשים באסימון הזהות שהונפק במהלך הכניסה. הצהרת sub
מכילה את המזהה הייחודי של המשתמש, וניתן לשייך אותה למזהה המשתמש מ-Google Chat.
שני המזהים לא זהים לחלוטין, אבל אפשר לאלץ אותם להיות זהים. כדי לאלץ את הערך של הצהרת sub
ל-users/{user}
ב-Google Chat, מוסיפים את הערך users/
בתחילת הערך. לדוגמה, ערך ההצהרה 123
שווה ל-users/123
בשם המשתמש בהודעות באפליקציית Chat.
נושאים קשורים
- קבלת אינטראקציות של משתמשים והתגובה אליהן
- בדוגמה של האפליקציה MyProfile נעשה שימוש באסימון הזהות מהתגובה של כניסה לחשבון Google כדי לזהות את המשתמש.