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

אימות משתמש משני מאפשר להוסיף אבטחה של גורם שני לפקודות הקוליות. כך אפשר להוסיף אבטחה נוספת לפעולות מסוימות, כמו השבתת מצלמת אבטחה או פתיחת דלת. אימות משתמש משני לא קשור למאפיין ספציפי של המכשיר, כך שתוכלו להחליט מתי Google Assistant יציג את האתגר. לדוגמה, אפשר לבחור להציג אתגר למאפיין OnOff למצלמת אבטחה, אבל לא להציג אתגר למאפיין OnOff לנורה. אתם יכולים גם לשלוח ל-Assistant אתגרים בנושא אותה פעולה במצבים מסוימים. לדוגמה, אפשר לבקש מ-Assistant להנפיק בקשת אתגר לפתיחת דלת אם מפתח NFC לא נמצא בסביבת הדלת, אבל לא להנפיק אתגר אם המפתח נמצא בסביבה.

ה-Assistant יכול להנפיק שני סוגים של אתגרים – אישור מפורש או מספר זיהוי אישי (PIN). כך מוסיפים בלוק שלגרום לאתגר לכוונות QUERY ו-EXECUTE שנשלחות מ-Assistant חזרה לפעולה, ומקבלים תגובת שגיאה מסוג challengeNeeded. לאחר מכן, Assistant שולח חזרה את בקשת הכוונה לפעולה שלכם, עם נתוני האתגר בבלוק האתגר. לאחר מכן תוכלו לאמת את נתוני האתגר כדי לקבוע אם המשתמש סיפק את תגובת האבטחה הנכונה.

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

סוגי מכשירים נתמכים

יש תמיכה באימות משתמש משני בכל סוגי המכשירים.

סוגי traits נתמכים במכשירים

אימות משתמש משני נתמך בכל מאפייני המכשיר.

סוגי האתגרים הנתמכים

אלה סוגי האתגרים הנתמכים באימות משתמש משני:

  • No challenge – בקשה ותגובה שלא כוללות אתגר אימות משתמשים משני.
  • 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 כדי להפחית את הבהירות של תאורה ואישור להפחתת הבהירות.

משתמש Dim the living room light.‎
Google Assistant הארת התאורה בסלון. להמשיך?
משתמש כן.
Google Assistant הארת התאורה בסלון.
בקשה 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
      }
    }]
  }
}
משתמש Dim the living room light.‎
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"
      }
    }]
  }
}

תגובות שגיאה

אלה כמה קודי שגיאה שיכולים להופיע בתשובות שלכם:

  • tooManyFailedAttemptsSorry, too many failed attempts. עליך לעבור לאפליקציה במכשיר כדי להשלים את הפעולה הזו.
  • pinIncorrectמצטערים, קוד האבטחה שגוי.
  • userCancelledאישור

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