אימות משתמש נוסף (SUV) מאפשר לכם להוסיף שכבת אבטחה שנייה לפקודות קוליות. כך תוכלו להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי של מצלמת אבטחה או פתיחת דלת. אימות משתמש נוסף (SUV) לא קשור לתכונה ספציפית של המכשיר, כך שאתם יכולים להחליט מתי Google Assistant יציג אתגר. לדוגמה, אתם יכולים לבחור להציג אתגר לתכונה OnOff של מצלמת אבטחה, אבל לא להציג אתגר לתכונה OnOff של נורה. במצבים מסוימים, Assistant יכול גם להציג אתגרים לאותה פעולה. לדוגמה, אתם יכולים לבקש ש-Assistant ישלח בקשת אתגר לפתיחת דלת אם שלט NFC לא נמצא בקרבת הדלת, אבל לא לשלוח אתגר אם השלט נמצא.
Assistant יכול להנפיק שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). הפעולה הזו מוסיפה בלוק אימות ל-intent מסוג QUERY ו-EXECUTE שנשלח מ-Assistant חזרה לפעולה, ומקבלת תגובת שגיאה מסוג challengeNeeded. Assistant שולח בחזרה את בקשת ה-Intent לפעולה שלכם עם נתוני האתגר בבלוק האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש נתן את התשובה הנכונה לשאלת האבטחה.
Assistant משתמש בתיבת דו-שיח כדי להציג את האתגר, אבל אם משתמשים ב-Assistant בפלטפורמות לא קוליות, קוד האימות והאישורים מוצגים במסך.
מתי כדאי להשתמש באימות משתמש נוסף (SUV)
אתם יכולים להפעיל אימות משתמש נוסף (SUV) לכל סוג מכשיר או תכונה. עם זאת, כדי שהשילוב יאושר, אתם צריכים להטמיע אימות משתמש נוסף (SUV) לסוגי מכשירים ולתכונות מסוימים שרגישים מבחינת אבטחה.
נדרש אימות משתמש נוסף (SUV) באמצעות סוג האתגר pinNeeded בשילובים הבאים של תכונות וסוגי מכשירים:
- התכונה
OnOffאם סוג המכשיר הואCAMERA. - התכונה
OpenCloseאם סוג המכשיר הואDOOR,GARAGE,GATEאוWINDOW. - התכונה
LockUnlockכשמבטלים את הנעילה. - התכונה
ArmDisarmכשמבטלים את הנעילה או מבטלים את ביטול הנעילה. - התכונה
Reboot,SoftwareUpdateאוNetworkControlאם סוג המכשיר הואNETWORKאוROUTER.
חובה להשתמש בסוג האתגר ackNeeded עבור המאפיין TemperatureSetting אם סוג המכשיר הוא AC_UNIT והשילוב נמצא ביפן.
סוגי האתגרים הנתמכים
אלה סוגי האתגרים הנתמכים של אימות משתמש נוסף:
- ללא אימות – בקשה ותגובה שלא משתמשות באימות משתמש נוסף (SUV).
- 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 יכול לשאול Are you sure you want to set the heat on the air conditioner to 28 degrees?
אפשר גם לכלול מצב בתשובה כדי ש-Assistant יבצע פעולה ספציפית על סמך בקשה נתונה.
התכונות והמצבים הבאים תומכים ב-ackNeeded עם מצבי תכונות. אם תכונה מסוימת מופיעה ברשימה, סימן שכל המצבים שלה נתמכים.
- ArmDisarm
- כדי להפעיל או לבטל את ההפעלה של המכשיר, צריך להשתמש בסוג האתגר
ackNeeded. כדי להשבית או לבטל את ההשבתה של המכשיר, צריך להשתמש בסוג האתגרpinNeeded. - Fill
- LockUnlock
- צריך להשתמש בסוג האתגר
ackNeededכדי לנעול את המכשיר ובסוג האתגרpinNeededכדי לבטל את הנעילה. - OnOff
on- צריך להשתמש בסוג האתגר
ackNeededלמאפיין הזה. סוג האתגרpinNeededנדרש כשמשתמשים בתכונה הזו במכשיריCAMERA. - OpenClose
- צריך להשתמש בסוג האתגר
ackNeededלמאפיין הזה. סוג האתגרpinNeededנדרש כשמשתמשים בתכונה הזו במכשירים מסוגDOOR, GARAGE,GATEאוWINDOW. - 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 – אישור