ברוכים הבאים למרכז המפתחים של Google Home. זהו היעד החדש ללימוד פיתוח פעולות לבית חכם. הערה:תצטרכו להמשיך ליצור פעולות במסוף הפעולות.

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

אימות משני של משתמשים מאפשר להוסיף אבטחה דו-שלבית לפקודות קוליות. כך תוכלו להוסיף שכבת אבטחה לפעולות מסוימות, כמו כיבוי של מצלמת אבטחה או פתיחת דלת. אימות המשתמש המשני לא קשור לתכונה מסוימת של המכשיר, שמאפשרת לכם להחליט מתי 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 התאורה מעומעמת בסלון.
בקשה 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"
    }]
  }
}

יש צורך במצבי תכונות

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

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

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

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

משתמש הגדרת מצב AC לחימום.
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, כך ש-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אישור.

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