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