אימות משני של משתמשים מאפשר להוסיף אבטחה דו-שלבית לפקודות קוליות. כך תוכלו להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי של מצלמת אבטחה או פתיחת דלת. אימות המשתמש המשני לא קשור לתכונה מסוימת של המכשיר, שמאפשרת לכם להחליט מתי Google Assistant נתקלים באתגר. לדוגמה, אפשר לפרסם אתגר לתכונה OnOff עבור מצלמת אבטחה, אבל לא להפעיל אתגר על התכונה OnOff עבור נורה. ייתכנו גם Assistantאתגרים לבעיה בכל מצב. לדוגמה, אתם יכולים לבקש ש-Assistant ינפיק בקשת אתגר לפתיחת דלת אם אין מפתח NFC שנמצא בדלת הזה, אבל לא יאתגר אתגר אם המפתח נמצא.
ב-Assistant יכולים להיות שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). הפעולה הזו מוסיפה אתגר לאתגר QUERY
וגם EXECUTE
כוונות שנשלחות מ-Assistant לפעולה שלך, ומקבלת תגובת שגיאה מסוג challengeNeeded
. לאחר מכן Assistant שולח חזרה את בקשת הכוונה לפעולה עם נתוני האתגר בבלוק האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש סיפק את תגובת האבטחה הנכונה.
Assistant משתמש בתיבת הדו-שיח כדי לפרסם את האתגר, אבל אם משתמשים ב-Assistant בפלטפורמות שאינן קוליות, קוד האימות והאישורים מבוצעים במסך.
סוגי מכשירים נתמכים
אימות משני של משתמשים נתמך בכל סוגי המכשירים.
תכונות נתמכות של המכשיר
אימות משני של המשתמש נתמך בכל תכונות המכשיר.
סוגי אתגרים נתמכים
אלה הסוגים הנתמכים של אתגרים באימות משתמשים משניים:
- No challenge – בקשה ותשובה שלא נעשה בהם שימוש באתגר משני לאימות משתמשים.
- ackצורה – אימות משתמש משני שדורש אישור מפורש (כן או לא) ויכול להשתמש גם במצבי תכונות כמשוב על תגובה. סוג האתגר הזה לא מומלץ למכשירי אבטחה ולתכונות.
- pinנדרש – אימות משתמש משני שדורש מספר זיהוי אישי (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
, לעמעום אור ולאישור עמעום התאורה.
משתמש | עמעום הסלון. |
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" }] } }
יש צורך במצבי תכונות
אימות משני של אישור משתמש שיכול להשתמש במצבים עבור תכונה מסוימת.
לדוגמה, אם עובדים עם התכונה הטמפרטורה הקבועה וגם עם ההגדרה thermostatMode
וגם thermostatTemperatureSetpoint
, ניתן לשאול את Assistant בטוח שאתם רוצים להגדיר את החימום במזגן ל-28 מעלות?
תוכלו גם לכלול מצב בתגובה כדי ש-Assistant יבצע פעולה ספציפית על סמך בקשה נתונה.
התכונות והמצבים הבאים תומכים ב-ackNeeded
עם מצבי תכונות. רשימה של תכונה ספציפית מציינת שכל המצבים שלה נתמכים.
- רמת זרוע
currentArmLevel
currentStatusReport
- מילוי
- נעילת נעילה
- כבוי
on
- פתיחה וסגירה
- סצינה
- הגדרת הטמפרטורה
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
, כך ש-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" } }] } }
קוד האימות שגוי
בדוגמה הזו מוצגת הבקשה והתגובה לאתגר 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" } }] } }
תגובות שגיאה
לפניכם כמה קודי שגיאה שניתן להחזיר עם התשובות שלכם:
challengeFailedNotSetup
- לפעולה הזו נדרש קוד אבטחה, אבל הוא לא הוגדר באפליקציה של המכשיר שלך.tooManyFailedAttempts
- מצטערים, היו יותר מדי ניסיונות כושלים. לשם כך, היכנסו לאפליקציה של המכשיר.pinIncorrect
- מצטערים, קוד האבטחה שגוי.userCancelled
– אישור.
לצפייה ברשימה המלאה של השגיאות והחריגים