אימות משתמש משני מאפשר להוסיף ל-Voice אבטחה דו-שלבית פקודות. כך אפשר להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי מצלמת אבטחה או פתיחת דלת. אימות המשתמש המשני הוא לא קשורה לתכונה ספציפית של מכשיר, שמאפשרת לך להחליט מתי Google Assistant יצרו אתגר. לדוגמה, אפשר לבחור לשלוח אתגר להתכונה OnOff עבור מצלמת אבטחה, אבל לא להציב אתגר OnOff של אור. אפשר גם להשתמש ב-Assistant ליצור אתגרים במצבים מסוימים עבור אותה פעולה. לדוגמה, יכול לבקש ל-Assistant לשלוח בקשת אתגר כדי לפתוח דלת אם מפתח NFC לא נמצא בקרבתה, אך לא להציב אתגר אם המפתחות נמצאים.
Assistant יכול ליצור שני סוגים של אתגרים:
אישור מפורש או מספר זיהוי אישי (PIN). הפעולה הזו מוסיפה
חסימת אתגר אל QUERY
ו-EXECUTE
כוונות נשלחו מ-Assistant חזרה לפעולה, וקיבלת שגיאה מסוג challengeNeeded
תשובה. לאחר מכן, Assistant שולח חזרה את בקשת ה-Intent אל
את הפעולה הרצויה בעזרת נתוני האתגר בבלוק האתגר. לאחר מכן אפשר
לאמת את נתוני האתגר כדי לקבוע אם המשתמש נתן את האבטחה הנכונה
תשובה.
Assistant משתמש בתיבת דו-שיח כדי לשלוח את האתגר, אבל להשתמש ב-Assistant בפלטפורמות שאינן קוליות, עם קוד אימות וגם באישורים מופיעים במסך.
סוגי מכשירים נתמכים
אימות משתמש משני נתמך בכל סוגי המכשירים.
תכונות מכשירים נתמכים
אימות משתמש משני נתמך בכל תכונות המכשיר.
סוגי אתגרים נתמכים
אלה סוגי האתגרים המשניים שנתמכים באימות משתמשים:
- ללא אתגר – בקשה ותגובה שלא כוללים אתגר משני לאימות משתמשים.
- ackNeeded – אימות משתמש משני שמחייב אישור מפורש (כן או לא), ואפשר גם להשתמש במצבי תכונה משוב על התשובה. סוג האתגר הזה לא מומלץ מטעמי אבטחה של מכשירים ותכונות.
- pinNeeded – אימות משתמש משני שמחייב מספר זיהוי אישי (PIN), שמתאים במיוחד למכשירי אבטחה ותכונות.
אין אתגר
בדוגמה הזו מוצגת בקשה ותגובה של EXECUTE
שהתבצעו בהצלחה ללא
אתגר להדלקת אורות.
משתמש | מדליקים את האורות. |
Google Assistant | בסדר, מדליקים 3 אורות. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.OnOff", "params": { "on": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "on": true, "online": true } }] } }
ackNeeded
אימות אישור משני של המשתמש שיכול להשתמש בכמה מצבים עבור מאפיין או אימות אישור פשוט.
יש ackNeeded
סוגי אתגרים מהסוגים הבאים:
ackנדרש פשוט
בדוגמה הזו מוצגת בקשה ותגובה פשוטים עם אתגר ackNeeded
לעמעום תאורה ולאישור לעמעם את האור.
משתמש | עמעום התאורה בסלון. |
Google Assistant | האורות בסלון עמעמים. להמשיך? |
משתמש | כן. |
Google Assistant | האורות בסלון עמעמים. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS" }] } }
ackנדרש עם מצבי מאפיין
אימות אישור משני של המשתמש שיכול להשתמש במצבים של
.
לדוגמה, אם אתם עובדים עם
מאפיין אחד (TemperatureSetting) ושניהם
thermostatMode
ו-thermostatTemperatureSetpoint
מוגדרים,
Assistant יכול לשאול האם אתה בטוח שברצונך להגדיר את החימום
במזגן ל-28 מעלות?
אפשר גם לכלול מדינה בתגובה Assistant מבצע פעולה ספציפית על סמך נתון בקשה.
התכונות והמדינות הבאות תומכות ב-ackNeeded
עם מצבי תכונה. א'
פירוט של תכונה ספציפית מציין שכל המדינות שבהן היא נתמכת.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
בדוגמה הזו מוצגת בקשה ותגובה עם אתגר ackNeeded
משתמשת במצב של תכונה. היא משנה את מצב המזגן לחימום ומגדירה את
ל-28 מעלות. לאחר מכן, המשתמשים יתבקשו להחליט על ידי Assistant
לאישור הפעלת החימום וכיוון הטמפרטורה ל-28
מעלות מאז thermostatTemperatureSetpoint
של 28
מוחזר כמדינה
בתשובה.
משתמש | הגדרת מצב AC לחימום. |
Google Assistant | בחרת להגדיר את החימום במזגן ל-28. להמשיך? מעלות? |
משתמש | כן. |
Google Assistant | הגדרת החימום במזגן ל-28 מעלות. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 } }] } }
pinNeeded
האתגר pinNeeded
מומלץ לשימוש במכשירי אבטחה.
בדוגמה הזו מוצגת בקשה ראשונית ותגובה עם pinNeeded
לאתגר. הדוגמה מחזירה תשובה עם אתגר pinNeeded
, כך
Assistant מבקש את קוד האימות. בשלב הזה המשתמש יכול
לספק קוד אימות שגוי או תקין.
דוגמה של בקשה ותגובה לקוד אימות שגוי או חוקי:
משתמש | מבטלים את נעילת הדלת. |
Google Assistant | אפשר לקבל את קוד האבטחה שלך? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
PIN שגוי
בדוגמה הזו מוצגות הבקשה והתשובה עם challengeFailedPinNeeded
לאתגר. צריך להשתמש באתגר הזה אחרי אתגר ראשוני של pinNeeded
נכשל.
כשמוחזר סוג challengeFailedPinNeeded
,
Assistant תבקש שוב את קוד האבטחה. אם המשתמש
מבצעת יותר מדי ניסיונות כושלים, אפשר להחזיר tooManyFailedAttempts
עם שגיאה. ראו תגובות לשגיאות.
משתמש | 333222 |
Google Assistant | מצטערים, קוד האבטחה שגוי. אפשר לקבל את קוד האבטחה שלך? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333222" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "challengeFailedPinNeeded" } }] } }
קוד אימות תקף
בדוגמה הזו מוצגות הבקשה והתשובה לקבלת קוד אימות תקין.
משתמש | 333444 |
Google Assistant | מתבצע ביטול של נעילת הדלת. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333444" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "isLocked": false, "isJammed": false } }] } }
משתמש | עמעום התאורה בסלון. |
Google Assistant | אפשר לקבל את קוד האבטחה שלך? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
תגובות לשגיאות
לפניכם כמה מקודי שגיאה שתוכלו להחזיר יחד עם התשובות:
- tooManyFailedAttempts - מצטערים, יותר מדי ניסיונות כושלים. עליך לעבור לאפליקציה של המכשיר כדי להשלים את הפעולה.
- pinIncorrect - מצטערים, קוד האבטחה שגוי.
- userCancelled – אישור
ראה את הרשימה המלאה של שגיאות וחריגים.