אימות משתמש משני מאפשר להוסיף אבטחה של גורם שני לפקודות הקוליות. כך תוכלו להוסיף אמצעי אבטחה לפעולות מסוימות, כמו השבתת מצלמת אבטחה או פתיחת דלת. אימות משתמש משני לא קשור למאפיין ספציפי של המכשיר, כך שתוכלו להחליט מתי Google Assistant יציג את האתגר. לדוגמה, אפשר לבחור להציג אתגר למאפיין OnOff למצלמת אבטחה, אבל לא להציג אתגר למאפיין OnOff לנורה. אתם יכולים גם לשלוח Assistant אתגרים בנושאים מסוימים לגבי אותה פעולה. לדוגמה, אפשר לבקש מ-Assistant להנפיק בקשת אתגר לפתיחת דלת אם מפתח NFC לא נמצא בסביבת הדלת, אבל לא להנפיק אתגר אם המפתח נמצא.
ה-Assistant יכול להנפיק שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). כך מוסיפים בלוק שלגרום לאתגר לכוונות QUERY
ו-EXECUTE
שנשלחות מ-Assistant חזרה לפעולה, ומקבלים תגובת שגיאה מסוג challengeNeeded
. לאחר מכן, Assistant שולח חזרה את בקשת הכוונה לפעולה שלכם, עם נתוני האתגר בבלוק האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש סיפק את תגובת האבטחה הנכונה.
ב-Assistant נעשה שימוש בתיבה דו-שיח כדי להציג את האתגר, אבל אם משתמשים ב-Assistant בממשקים ללא קול, קוד האימות והאישורים מוצגים במסך.
סוגי המכשירים הנתמכים
יש תמיכה באימות משתמש משני בכל סוגי המכשירים.
סוגי traits נתמכים במכשירים
אימות משתמש משני נתמך בכל מאפייני המכשיר.
סוגי האתגרים הנתמכים
אלה סוגי האתגרים הנתמכים באימות משתמש משני:
- No challenge – בקשה ותגובה שלא כוללות אתגר אימות משני של המשתמש.
- 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
:
ackNeeded simple
בדוגמה הזו מוצגות בקשה ותגובה פשוטות עם אתגר 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" }] } }
ackNeeded עם מצבי מאפיינים
אימות אישור משני של משתמש שיכול להשתמש במצבים למאפיין.
לדוגמה, אם אתם עובדים עם המאפיין 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
מוחזר כמצב בתגובה.
משתמש | מגדירים את מצב מיזוג האוויר לחימום. |
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" } }] } }
קוד אימות תקין
בדוגמה הזו מוצגות הבקשה והתגובה של מספר PIN תקין.
משתמש | 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 – Sorry, too many failed attempts. כדי לבצע את הפעולה הזו, עליך לעבור לאפליקציה במכשיר.
- pinIncorrect – מצטערים, קוד האבטחה שגוי.
- userCancelled – אישור