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