אימות והרשאה של אפליקציות צ'אט ובקשות מ-Google Chat API

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

סקירה כללית על התהליך

בתרשים הבא מוצגים שלבי האימות הכלליים הרשאה ל-Google Chat:

שלבים כלליים לאימות ולהרשאה של Google Chat
איור 1. שלבים כלליים לאימות ולהרשאה של Google Chat.

  1. להגדיר פרויקט ב-Google Cloud, להפעיל את Chat API ולהגדיר אפליקציית Chat: במהלך הפיתוח, אתם יוצרים פרויקט ב-Google Cloud. בפרויקט ב-Google Cloud מפעילים את Chat API, להגדיר את אפליקציית Chat ולהגדיר אימות. מידע נוסף זמין במאמר הבא: פיתוח ב-Google Workspace וליצור אפליקציה ל-Chat.

  2. Call Chat API: כשהאפליקציה שולחת קריאה Chat API, הוא שולח פרטי כניסה לאימות Chat API. אם המיקום האפליקציה מבצעת אימות באמצעות חשבון שירות, פרטי הכניסה נשלחים כ- חלק מקוד האפליקציה. אם באפליקציה נדרשת קריאה ל-Chat API באמצעות אימות של משתמש שעדיין לא הוענק, היא תשלח המשתמש צריך להיכנס.

  3. בקשת משאבים: האפליקציה מבקשת גישה באמצעות היקפי הרשאות שתציינו במהלך הגדרת האימות.

  4. לבקש הסכמה: אם האפליקציה שלכם מבצעת אימות כמשתמש, Google מציגה מסך הסכמה ל-OAuth כדי שהמשתמשים יוכלו להחליט אם לאשר את האפליקציה גישה לנתונים המבוקשים. אימות באמצעות חשבון שירות לא נדרשות הסכמה מהמשתמשים.

  5. שליחת בקשה שאושרה למשאבים: אם המשתמש מסכים ל היקפי ההרשאות, ה-App Bundle כולל את פרטי הכניסה ואת פרטי הכניסה שאושרו על ידי המשתמשים את היקפים לבקשה. הבקשה נשלחת לשרת ההרשאות של Google כדי לקבל אסימון גישה.

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

  7. גישה למשאבים המבוקשים: האפליקציה משתמשת באסימון הגישה מ-Google כדי להפעיל את Chat API ולגשת למשאבי Chat API.

  8. קבלת אסימון רענון (אופציונלי): אם האפליקציה חייבת לגשת אחרי משך החיים של אסימון גישה יחיד, Google Chat API יכול לקבל אסימון הרענון. מידע נוסף זמין במאמר הבא: שימוש ב-OAuth 2.0 כדי לגשת ל-Google APIs.

  9. מבקשים משאבים נוספים: אם האפליקציה צריכה עוד הרשאות גישה, המשתמשים יתבקשו לעשות זאת כדי להעניק היקפים חדשים, וכתוצאה מכך נוצרת בקשה חדשה לקבלת אסימון גישה (שלבים 3-6).

מתי צריך לבצע אימות באפליקציות ל-Chat

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

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

כדי לשלוח הודעות אסינכרוניות או לבצע משימות בשמו של משתמש, אפליקציות צ'אט שולחות בקשות RESTful Chat API, שמחייבים אימות והרשאה.

התגובות לאינטראקציות של משתמשים לא מחייבות אימות

אפליקציות ל-Google Chat לא צריכות לעבור אימות כמשתמש או אפליקציית Chat שצריך לקבל ולהשיב אליה באופן סינכרוני אירועי אינטראקציה.

אפליקציות של Google Chat מקבלות אירועי אינטראקציה בכל פעם שמשתמש יוצר אינטראקציה, או הפעלה של אפליקציית Chat, כולל:

  • משתמש שולח הודעה לאפליקציית Chat.
  • משתמש מוסיף אזכור ( @mention) של אפליקציית Chat.
  • משתמש מפעיל את אחת מהאפליקציות של Chat פקודות דרך שורת הפקודות.

התרשים הבא מציג רצף בקשה-תגובה בין משתמש ואפליקציית Chat:

לא נדרשת הרשאה לאירועי אינטראקציה עם אפליקציית Chat
איור 2.אירועי אינטראקציה עם אפליקציית צ'אט לא מחייבים אימות.

  1. המשתמש שולח הודעה לאפליקציית Chat ב- Google Chat.
  2. ההודעה תועבר מ-Google Chat לאפליקציה.
  3. האפליקציה מקבלת את ההודעה, מעבדת אותה ומחזירה תשובה Google Chat.
  4. Google Chat מעבד את התשובה של המשתמש או במרחב משותף.

הרצף הזה חוזר על עצמו בכל אינטראקציה עם אפליקציית Chat אירוע.

הודעות אסינכרוניות מחייבות אימות

הודעות אסינכרוניות מתרחשות כשאפליקציית Chat יוצרת בקשה ל Chat API, שדורש אימות והרשאה.

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

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

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

נדרש אימות להודעות אסינכרוניות
איור 3. כדי להשתמש בהודעות אסינכרוניות נדרש אימות.

  1. אפליקציית Chat יוצרת הודעה באמצעות קריאה Chat API באמצעות spaces.messages.create method, והוא כולל את פרטי הכניסה של המשתמש בבקשת ה-HTTP.
  2. אפליקציית Google Chat מאמתת את אפליקציית Chat באמצעות של חשבון שירות או של פרטי כניסה של משתמש.
  3. המערכת של Google Chat מעבדת את ההודעה מהאפליקציה ל-Chat שצוין המרחב המשותף.

היקפי ההרשאות של Chat API

הגדרת מסך ההסכמה של OAuth ובחירת היקפים כדי להגדיר איזה מידע יוצג למשתמשים ולבודקי אפליקציות, ולרשום את האפליקציה כדי שאפשר יהיה לפרסם אותה מאוחר יותר.

כדי להגדיר את רמת הגישה שמוענקת לאפליקציה שלך, עליך לזהות להצהיר על היקפי ההרשאות. היקף ההרשאה הוא URI של OAuth 2.0 מחרוזת שמכילה את השם של אפליקציית Google Workspace ואת סוג הנתונים הרשאות הגישה ורמת הגישה.

היקפים לא רגישים

קוד היקף ההרשאות תיאור
https://www.googleapis.com/auth/chat.bot

ההיקף chat.bot תומך רק בחשבונות שירות. שלך לא יכולים לבצע אימות באמצעות פרטי כניסה של משתמש הענקת גישה ברמת הדומיין באמצעות ההיקף הזה.

ההרשאה הזו מאפשרת לאפליקציות Chat לראות את הצ'אטים ולשלוח הודעות. נותן גישה לכל התכונות שזמינות לאפליקציות Chat.

היקפים רגישים

קוד היקף ההרשאות תיאור
https://www.googleapis.com/auth/chat.spaces ליצור שיחות ומרחבים, לקרוא או לערוך מטא-נתונים (כולל הגדרות ההיסטוריה והגדרות הגישה) ב-Chat.
https://www.googleapis.com/auth/chat.spaces.create ליצור שיחות חדשות ב-Chat.
https://www.googleapis.com/auth/chat.spaces.readonly צפייה בצ'אט ובמרחבים המשותפים ב-Chat.
https://www.googleapis.com/auth/chat.memberships ראייה, הוספה, עדכון והסרה של משתתפים בשיחות ב-Chat.
https://www.googleapis.com/auth/chat.memberships.app להוסיף ולהסיר את עצמו בשיחות ב-Google Chat.
https://www.googleapis.com/auth/chat.memberships.readonly לראות את המשתתפים בשיחות ב-Chat.
https://www.googleapis.com/auth/chat.messages.create לכתוב ולשלוח הודעות ב-Chat.
https://www.googleapis.com/auth/chat.messages.reactions לראות, להוסיף ולמחוק תגובות להודעות ב-Chat.
https://www.googleapis.com/auth/chat.messages.reactions.create להוסיף תגובות להודעות ב-Chat.
https://www.googleapis.com/auth/chat.messages.reactions.readonly לראות תגובות להודעות ב-Chat.
https://www.googleapis.com/auth/chat.users.readstate הצגה ושינוי של מועד הקריאה האחרון בשיחות ב-Chat.
https://www.googleapis.com/auth/chat.users.readstate.readonly הצגת מועד הקריאה האחרון בשיחות ב-Chat.
https://www.googleapis.com/auth/chat.admin.spaces.readonly צפייה בצ'אט ובמרחבים המשותפים שבבעלות הדומיין של האדמין ב-Chat.
https://www.googleapis.com/auth/chat.admin.spaces קריאה או עריכה של הצ'אט והמרחבים המשותפים שבבעלות הדומיין של האדמין ב-Chat.
https://www.googleapis.com/auth/chat.admin.memberships.readonly צפייה בחברים ובמנהלים בשיחות שבבעלות הדומיין של האדמין ב-Chat.
https://www.googleapis.com/auth/chat.admin.memberships צפייה, הוספה, עדכון והסרה של חברים ומנהלים בשיחות שבבעלות הדומיין של האדמין ב-Chat.

היקפים מוגבלים

קוד היקף ההרשאות תיאור
https://www.googleapis.com/auth/chat.delete מחיקת השיחות והמרחבים המשותפים, והסרת הגישה לקבצים המשויכים ב-Chat.
https://www.googleapis.com/auth/chat.import ייבוא מרחבים, הודעות ומינויים אל Chat. עבור מידע נוסף: איך נותנים הרשאה לאפליקציות ל-Chat לייבא נתונים
https://www.googleapis.com/auth/chat.messages הצגה, כתיבה, שליחה, עדכון ומחיקה של הודעות, והוספה, הצגה ומחיקה של הודעות למחוק תגובות להודעות באמצעות אמוג'י.
https://www.googleapis.com/auth/chat.messages.readonly לראות את ההודעות והתגובות ב-Chat.
https://www.googleapis.com/auth/chat.admin.delete מחיקת השיחות והמרחבים שבבעלות הדומיין של האדמין, והסרת הגישה לקבצים המשויכים ב-Chat.

ההיקפים בטבלאות שלמעלה מציינים את הרגישות שלהם, לפי ההגדרות הבאות:

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

למידע נוסף על היקפי ההרשאות לממשקי API של Google Workspace: מגדירים את מסך ההסכמה של OAuth ובוחרים היקפים.

סוגי האימות הנדרש

יש שתי דרכים שבהן אפליקציות צ'אט יכולות לבצע אימות ואישור באמצעות Chat API: פרטי כניסה של משתמשים או חשבונות שירות.

בעזרת פרטי הכניסה של המשתמש, אפליקציית Chat יכולה גישה לנתוני משתמש וביצוע פעולות בשמו. היקפי ההרשאות של OAuth מציינים את הפעולות והנתונים המורשים.

באמצעות הרשאה לאפליקציה, אפליקציית Chat מקבלת גישה את ה-API כאפליקציה שמשתמשת בפרטי כניסה של חשבון שירות. הרשאה לאפליקציה תמיד משתמש בהיקף ההרשאה chat.bot.

כשאתם מחליטים באיזה סוג של פרטי כניסה להשתמש עבור בקשת API מסוימת, חשוב לזכור ששיטות API מסוימות תומכות רק בסוג מסוים של פרטי כניסה לחשבון. אם שיטת API תומכת בשני פרטי הכניסה, סוג פרטי הכניסה בשימוש בשיחה משפיע על התוצאה שמוחזרת:

  • ב'הרשאה לאפליקציה', השיטות מחזירות רק משאבים שהאפליקציה יכולה גישה.
  • בהרשאת משתמש, השיטות מחזירות רק משאבים שהמשתמש יכולים לגשת אליו בממשק המשתמש של Chat.

לדוגמה, קריאה ל-method ListSpaces עם הרשאת גישה לאפליקציה תחזיר את הערך של רשימה של המרחבים המשותפים שהאפליקציה משתתפת בהם. התקשרות אל ListSpaces עם המשתמש/ת הרשאה מחזירה את רשימת המרחבים המשותפים שבהם המשתמש חבר. לחשבון האפליקציה עשויה להשתמש בשני סוגי ההרשאות בזמן קריאה Chat API, בהתאם לפונקציונליות הרצויה.

לקריאות אסינכרוניות של Chat API

בטבלה הבאה מפורטות השיטות של Chat API והשיטות הנתמכות שלהן היקפי הרשאות:

שיטה תמיכה באימות משתמשים תמיכה באימות אפליקציות היקפי ההרשאות הנתמכים
מרחבים משותפים  
איך יוצרים מרחבים משותפים באמצעות אימות משתמש:
  • chat.spaces.create
  • chat.spaces
  • chat.import
איך מגדירים מרחב משותף באמצעות אימות משתמש:
  • chat.spaces.create
  • chat.spaces
ליצירת מרחב באמצעות אימות משתמש:
  • chat.spaces.readonly
  • chat.spaces
באמצעות אימות אפליקציות:
  • chat.bot
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.spaces.readonly
הצגת רשימת המרחבים המשותפים באמצעות אימות משתמש:
  • chat.spaces.readonly
  • chat.spaces
באמצעות אימות אפליקציות:
  • chat.bot
חיפוש מרחבים כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.spaces.readonly
איך משנים את המרחב המשותף באמצעות אימות משתמש:
  • chat.spaces
  • chat.import
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.spaces
איך מוחקים מרחבים משותפים באמצעות אימות משתמש:
  • chat.delete
  • chat.import
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.delete
השלמת תהליך הייבוא של מרחב משותף באמצעות אימות משתמש:
  • chat.import
איך מחפשים צ'אטים אישיים באמצעות אימות משתמש:
  • chat.spaces.readonly
  • chat.spaces
באמצעות אימות אפליקציות:
  • chat.bot
חברים  
איך יוצרים חברי מועדון באמצעות אימות משתמש:
  • chat.memberships
  • chat.memberships.app
  • chat.import
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.memberships
הצטרפות למועדון החברים באמצעות אימות משתמש:
  • chat.memberships.readonly
  • chat.memberships
באמצעות אימות אפליקציות:
  • chat.bot
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.memberships.readonly
חברים ברשימה באמצעות אימות משתמש:
  • chat.memberships.readonly
  • chat.memberships
  • chat.import
באמצעות אימות אפליקציות:
  • chat.bot
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.memberships.readonly
מחיקת חבר באמצעות אימות משתמש:
  • chat.memberships
  • chat.memberships.app
  • chat.import
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.memberships
עדכון חברי מועדון באמצעות אימות משתמש:
  • chat.memberships
  • chat.import
כשמשתמשים באימות משתמש באמצעות הרשאות אדמין:
  • chat.admin.memberships
הודעות  
איך יוצרים הודעות באמצעות אימות משתמש:
  • chat.messages.create
  • chat.messages
  • chat.import
באמצעות אימות אפליקציות:
  • chat.bot
קבלת הודעה באמצעות אימות משתמש:
  • chat.messages.readonly
  • chat.messages
באמצעות אימות אפליקציות:
  • chat.bot
רשימת ההודעות באמצעות אימות משתמש:
  • chat.messages.readonly
  • chat.messages
  • chat.import
איך מעדכנים הודעות באמצעות אימות משתמש:
  • chat.messages
  • chat.import
באמצעות אימות אפליקציות:
  • chat.bot
איך מוחקים הודעות? באמצעות אימות משתמש:
  • chat.messages
  • chat.import
באמצעות אימות אפליקציות:
  • chat.bot
תגובות  
יצירת תגובה באמוג'י באמצעות אימות משתמש:
  • chat.messages.reactions.create
  • chat.messages.reactions
  • chat.messages
  • chat.import
הצגת רשימה של תגובות באמצעות אימות משתמש:
  • chat.messages.reactions.readonly
  • chat.messages.reactions
  • chat.messages.readonly
  • chat.messages
מחיקת תגובה באמוג'י באמצעות אימות משתמש:
  • chat.messages.reactions
  • chat.messages
  • chat.import
מדיה קבצים מצורפים  
העלאת מדיה כקובץ מצורף באמצעות אימות משתמש:
  • chat.messages.create
  • chat.messages
  • chat.import
הורדת המדיה באמצעות אימות משתמש:
  • chat.messages.readonly
  • chat.messages
באמצעות אימות אפליקציות:
  • chat.bot
קבלת קובץ מצורף של הודעה באמצעות אימות אפליקציות:
  • chat.bot
מצבי קריאה של משתמשים
קבלת מצב קריאת מרחב של משתמש באמצעות אימות משתמש:
  • chat.users.readstate
  • chat.users.readstate.readonly
עדכון מצב הקריאה של מרחב משתמש באמצעות אימות משתמש:
  • chat.users.readstate
קבלת מצב קריאת השרשור של משתמש באמצעות אימות משתמש:
  • chat.users.readstate
  • chat.users.readstate.readonly
אירועים במרחב המשותף
קבלת אירועים בחלל באמצעות אימות משתמש:
  • chat.messages
  • chat.messages.readonly
  • chat.messages.reactions
  • chat.messages.reactions.readonly
  • chat.memberships
  • chat.memberships.readonly
  • chat.spaces
  • chat.spaces.readonly
הצגת רשימה של אירועים במרחב המשותף באמצעות אימות משתמש:
  • chat.messages
  • chat.messages.readonly
  • chat.messages.reactions
  • chat.messages.reactions.readonly
  • chat.memberships
  • chat.memberships.readonly
  • chat.spaces
  • chat.spaces.readonly

באירועי אינטראקציה של אפליקציית Chat

בטבלה הבאה מפורטות הדרכים הנפוצות שבהן משתמשים יכולים לקיים אינטראקציה עם אפליקציות צ'אט, והאם נדרש או נתמך אימות:

תרחיש לא נדרש אימות תמיכה באימות משתמשים תמיכה באימות אפליקציות
קבלת הודעות מ:
אירועי אינטראקציה של אפליקציית Chat
קריאה חוזרת (callback) ב-Apps Script
Google Cloud Pub/Sub
איך עונים להודעות:
שימוש סינכרוני באירוע אינטראקציה של אפליקציית Chat
באופן סינכרוני, באמצעות ערך החזרה של קריאה חוזרת ב-Apps Script
שליחת הודעות חדשות:
עם webhooks נכנסים