אימות משתמש נוסף (SUV) מאפשר להוסיף שכבת אבטחה שנייה לפקודות קוליות. כך תוכלו להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי מצלמת אבטחה או פתיחת דלת. אימות משתמש נוסף (SUV) לא קשור למאפיין ספציפי של המכשיר, ולכן אתם יכולים להחליט מתי Google Assistant יציג אתגר. לדוגמה, אפשר לבחור להציג אתגר עבור המאפיין OnOff של מצלמת אבטחה, אבל לא להציג אתגר עבור המאפיין OnOff של מנורה. אפשר גם להגדיר שיוצגו אתגרים לפתרון בעיות במצבים מסוימים עבור אותה פעולה.Assistant לדוגמה, אפשר לבקש מ-Assistant לשלוח בקשת אתגר לפתיחת דלת אם מחזיק מפתחות NFC לא נמצא בקרבת הדלת, אבל לא לשלוח אתגר אם מחזיק המפתחות נמצא בקרבת הדלת.
Assistant יכול להציג שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). הפעולה הזו מוסיפה בלוק של אתגר לכוונות QUERY ו-EXECUTE שנשלחות מ-Assistant בחזרה לפעולה שלכם, ומקבלת תגובת שגיאה מסוג challengeNeeded. Assistant שולח בחזרה את בקשת הכוונה לפעולה שלכם עם נתוני האתגר בבלוק האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש סיפק את התשובה הנכונה לשאלת האבטחה.
ב-Assistant נעשה שימוש בתיבת דו-שיח כדי להציג את האתגר, אבל אם משתמשים ב-Assistant בפלטפורמות שאינן קוליות, האימות באמצעות קוד אימות והאישורים מתבצעים במסך.
מתי כדאי להשתמש באימות משתמש נוסף (SUV)
אתם יכולים להפעיל אימות משתמש נוסף (SUV) לכל סוג או מאפיין של מכשיר. עם זאת, כדי לקבל אישור לשילוב, צריך להטמיע אימות משני של משתמש (SUV) בסוגים מסוימים של מכשירים ובתכונות מסוימות שרגישים לאבטחה.
נדרש אימות משתמש נוסף (SUV) באמצעות סוג האתגר pinNeeded בשילובים הבאים של מאפיינים וסוגי מכשירים:
- המאפיין
OnOffאם סוג המכשיר הואCAMERA. - המאפיין
OpenCloseאם סוג המכשיר הואDOOR,GARAGE,GATEאוWINDOW. - מאפיין
LockUnlockכשמבטלים את הנעילה. - מאפיין
ArmDisarmכשמבטלים את ההשבתה או כשמבטלים את הביטול של ההשבתה. - מאפיין
Reboot,SoftwareUpdateאוNetworkControlאם סוג המכשיר הואNETWORKאוROUTER.
תכונת TemperatureSetting מחייבת את סוג האתגר ackNeeded אם סוג המכשיר הוא AC_UNIT והשילוב הוא מיקום ביפן.
סוגי אתגרים נתמכים
אלה סוגי האתגרים הנתמכים באימות משתמש נוסף (SUV):
- ללא אתגר – בקשה ותגובה שלא נעשה בהן שימוש באימות משתמש נוסף (SUV).
- ackNeeded – אימות משתמש נוסף (SUV) שנדרש בו אישור מפורש (כן או לא), ויכול לשמש גם כמשוב על תגובה באמצעות מצבי מאפיינים. לא מומלץ להשתמש בסוג האתגר הזה במאפיינים ובמכשירים שקשורים לאבטחה.
- pinNeeded – אימות משתמש נוסף (SUV) שדורש מספר זיהוי אישי (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 להנמכת האור והאישור להנמכת האור.
| משתמש | עמעם את האור בסלון. |
| Google Assistant | Dimming the living room light. להמשיך? |
| משתמש | כן. |
| Google Assistant | Dimming the living room light. |
{ "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
- משתמשים בסוג האתגר
ackNeededכדי להפעיל או לבטל את הפעלת המכשיר, אבל כדי להשבית או לבטל את השבתת המכשיר, נדרש סוג האתגרpinNeeded. - Fill
- LockUnlock
- משתמשים בסוג האתגר
ackNeededכדי לנעול את המכשיר ובסוג האתגרpinNeededכדי לבטל את הנעילה. - OnOff
on- משתמשים בסוג האתגר
ackNeededבשביל התכונה הזו. כשמשתמשים בתכונה הזו במכשיריCAMERA, צריך לציין את סוג האתגרpinNeeded. - OpenClose
- משתמשים בסוג האתגר
ackNeededבשביל התכונה הזו. כשמשתמשים בתכונה הזו עם מכשיריDOOR,GARAGE,GATEאוWINDOW, צריך לציין את סוג האתגרpinNeeded. - Scene
- TemperatureSetting
thermostatModethermostatTemperatureSetpointthermostatTemperatureSetpointHighthermostatTemperatureSetpointLow
בדוגמה הזו מוצגת בקשה ותגובה עם אתגר 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" } }] } }
קוד אימות תקין
בדוגמה הזו מוצגות הבקשה והתשובה של קוד אימות תקין.
| משתמש | 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 – אישור