איך מקשרים אפליקציית Chat לשירותים ולכלים אחרים

בדף הזה מוסבר איך לחבר אפליקציה של Google Chat לשירות או לכלי שלא נכללים ב-Google Chat. האפליקציות של Chat הן עוצמתיות בפני עצמן, אבל לעיתים קרובות הן פועלות בשילוב עם מערכות אחרות ומחייבות אפליקציות נלוות כדי לחבר חשבונות, לאשר גישה לנתונים, להציג נתונים נוספים או להגדיר העדפות משתמש.

שליחת בקשה למשתמש לשנות את ההגדרות של אפליקציית 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 מבצעת את הפעולות הבאות:

  1. מחיקת ההנחיה שהוצגה למשתמש שמתחיל את התהליך.
  2. להמיר את ההודעה המקורית לגלויה לכולם, וכך שאר המשתתפים במרחב המשותף יכולים לראות אותה.
  3. שולחים שוב את ההודעה המקורית לאותה אפליקציית 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.