אימות משתמש משני

אימות המשתמש המשני מאפשר להוסיף שכבת אבטחה שנייה לפקודות קוליות. כך תוכלו להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי מצלמת אבטחה או פתיחת דלת. אימות משתמש משני לא קשור למאפיין ספציפי של המכשיר, ולכן אתם יכולים להחליט מתי 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 Dimming the living room light. להמשיך?
משתמש כן.
Google Assistant Dimming the living room light.
בקשה 1
{
  "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
          }
        }]
      }]
    }
  }]
}
תשובה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
בקשה 2
{
  "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
          }
        }]
      }]
    }
  }]
}
תשובה 2
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "SUCCESS"
    }]
  }
}

‫ackNeeded עם מצבי מאפיינים

אימות משני של המשתמש שמאפשר להשתמש במצבים עבור תכונה. לדוגמה, אם אתם עובדים עם מאפיין TemperatureSetting והגדרתם גם את thermostatMode וגם את thermostatTemperatureSetpoint,‏ Assistant יכול לשאול האם בטוח שאתם רוצים להגדיר את החום במזגן ל-28 מעלות?

אפשר גם לכלול מצב בתשובה כדי ש-Assistant יבצע פעולה ספציפית על סמך בקשה נתונה.

התכונות והמצבים הבאים תומכים ב-ackNeeded עם מצבי תכונה. אם מופיע מאפיין ספציפי, זה אומר שכל המצבים שלו נתמכים.

בדוגמה הזו מוצגת בקשה ותגובה עם אתגר ackNeeded שמשתמש במצב מאפיין. היא משנה את מצב המזגן לחימום ומגדירה את הטמפרטורה ל-28 מעלות. לאחר מכן, Assistant מבקש מהמשתמשים לאשר את הפעלת החימום והגדרת הטמפרטורה ל-28 מעלות, כי thermostatTemperatureSetpoint של 28 מוחזר כתגובה.

משתמש הגדר את מצב המיזוג לחימום.
Google Assistant בטוח שברצונך להגדיר את החימום במזגן ל-28 מעלות?
משתמש כן.
Google Assistant הגדרת החימום במזגן ל-28 מעלות.
בקשה 1
{
  "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"
          }
        }]
      }]
    }
  }]
}
תשובה 1
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["123"],
      "status": "ERROR",
      "states": {
        "thermostatMode": "heat",
        "thermostatTemperatureSetpoint": 28
      },
      "errorCode": "challengeNeeded",
      "challengeNeeded": {
        "type": "ackNeeded"
      }
    }]
  }
}
בקשה 2
{
  "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
          }
        }]
      }]
    }
  }]
}
תשובה 2
{
  "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אישור

הרשימה המלאה של השגיאות והחריגים