בדף הזה מוסבר איך לקשר אפליקציה ל-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 כדי לזהות את המשתמש.