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

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

GSI הוא הפתרון המומלץ לקישור חשבונות, אם מתקיים אחד מהתנאים הבאים:

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

כדי לוודא ש-GSI הוא הפתרון המתאים לכם, עיינו בדף Choose your account link type (בחירת סוג הקישור של החשבון).

מונחי מפתח

לפני שתקראו איך GSI עובד, כדאי שתכירו את המונחים הבאים:

  • אסימון של מזהה Google: טענת נכוֹנוּת (assertion) חתומה של זהות המשתמש שמכילה את הפרטים הבסיסיים של פרופיל Google של המשתמש (השם, כתובת האימייל ותמונת הפרופיל שלו). אסימון של מזהה Google הוא אסימון אינטרנט מסוג JSON (JWT).

    דוגמה לאסימון מפוענח:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus: מאפיין שהמערכת הגדירה כדי לציין אם בסשן הנוכחי יש משתמש מאומת.

  • user.accountLinkingStatus: מאפיין שהמערכת הגדירה כדי לציין אם למשתמש בסשן הנוכחי יש זהות מקושרת.

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

איך זה עובד

התהליך הבסיסי של GSI הוא:

  1. במסגרת הפעולה, המשתמש מבקש את הסכמתו לגשת לפרופיל Google שלו.
  2. אחרי שהמשתמש מביע הסכמה, הפעולה מקבלת אסימון מזהה של Google שמכיל את פרטי פרופיל Google שלו.
  3. כדי לקרוא את תוכן הפרופיל צריך לאמת ולפענח את האסימון. אם אתם משתמשים בספריית Fulfillment של פעולות ב-Google עבור Node.js, האסימון מאמת ומפענח בשבילכם.
  4. בפעולה נעשה שימוש באסימון הזה כדי לבדוק אם פרטי הפרופיל ב-Google קיימים במערכת שלכם.

    1. אם כן, המשתמש כבר נכנס למערכת עם חשבון Google שלו. המשתמש יכול להמשיך את השיחה עם Assistant כשהזהות שלו מקושרת לחשבון Google.
    2. אם לא, המשתמשים יוכלו ליצור חשבון חדש במערכת עם המידע שכלול באסימון המזהה של Google. המשתמש יוכל להמשיך את השיחה עם Assistant באמצעות החשבון החדש המקושר.

תהליכי כניסה באמצעות חשבון Google

הקטע הזה מתאר את התהליכים השונים שיכולים להתרחש בכניסה באמצעות חשבון Google.

שלב 1: פרטי המשתמש קיימים במערכת שלך

בתרשים הבא מוצג התהליך מקצה לקצה המתרחש ב-GSI כשפרטי המשתמש כבר קיימים במערכת:

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

אחרי שהמשתמש מביע הסכמה, Assistant שולחת בקשה שמכילה את פרטי הפרופיל של user@gmail.com. במקרה כזה, המידע ששמור באסימון המזהה של Google עבור user@gmail.com תואם לחשבון במערכת שלכם, ולכן זהות המשתמש בפעולה מקושרת באופן אוטומטי לחשבון הזה. לאחר מכן, התגובה לפעולה מאתר אחר (webhook) יכולה לקרוא את הסדר הרגיל של המשתמשים ממסד נתונים ולהגיב בהתאם.

שלב 2: פרטי המשתמש לא קיימים במערכת שלך

בתרשים הבא מוצג התהליך מקצה לקצה שמתרחשת ב-GSI כשפרטי המשתמש לא קיימים במערכת:

במקרה כזה, המידע שכלול באסימון המזהה של Google עבור user@gmail.com לא תואם לחשבון במערכת שלך, ולכן Assistant תשאל את המשתמש אם הוא רוצה ליצור חשבון חדש. המשתמש יכול להשלים את תהליך יצירת החשבון באמצעות הקול, במקום להעביר אותו למכשיר שנבדק.

כשהמשתמש מסכים ליצור חשבון, השירות משתמש במידע שבאסימון המזהה (השם וכתובת האימייל של המשתמש) כדי ליצור חשבון למשתמש. אחרי שיוצרים את החשבון, זהות המשתמש בפעולה מקושרת לחשבון Google החדש שלו.

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