التحقُّق من هوية المستخدم الثانوي

يتيح التحقق من المستخدم الثانوي إضافة عامل الأمان الثاني إلى الصوت. الأوامر. يتيح لك ذلك إضافة المزيد من الأمان لإجراءات معيّنة، مثل إطفاء كاميرا مراقبة أو فتح باب عملية التحقق من المستخدم الثانوي هي غير مرتبطة بسمة جهاز معينة تسمح لك بتحديد متى يجب يصدر "Google Assistant" تحدٍّ. على سبيل المثال، يمكنك اختيار إصدار تحدٍ للسمة OnOff كاميرا مراقبة، ولكن لا تشكل تحديًا OnOff سمة للضوء. يمكنك أيضًا الحصول على Assistant والمشكلات في مواقف معينة لنفس الإجراء. على سبيل المثال، يمكن أن يطلب من "Assistant" إصدار طلب تحدٍّ أن يتم فتح باب إذا لم يكن المفتاح الرقمي NFC قريبًا من هذا الباب إصدار تحدٍ إذا كان المفتاح الأساسي موجودًا.

يمكن لـ "Assistant" إصدار نوعَين من التحديات، هما: إقرار صريح أو رقم تعريف شخصي (PIN). يضيف ذلك حظر التحدي على QUERY وEXECUTE هدفًا تم إرساله من Assistant إلى الإجراء ويتم قبول خطأ challengeNeeded الاستجابة. بعد ذلك يرسل Assistant طلب intent إلى عملك مع بيانات التحدي في قالب التحدي. يمكنك بعد ذلك التحقّق من صحة بيانات الاختبار لتحديد ما إذا كان المستخدم قد أدخل مستوى الأمان الصحيح الاستجابة.

يستخدم "Assistant" مربّع الحوار لإصدار التحدي، ولكن إذا استخدام "Assistant" على مساحات عرض لا تتيح صوتك، ورقم التعريف الشخصي التأكيدات على الشاشة.

أنواع الأجهزة المتوافقة

تتوفّر إمكانية إثبات هوية المستخدم الثانوي على جميع أنواع الأجهزة.

سمات الأجهزة المتوافقة

تتوفّر إمكانية إثبات هوية المستخدم الثانوي لجميع سمات الجهاز.

أنواع الاختبار المتوافقة

في ما يلي أنواع اختبارات التحقُّق الثانوي المتاحة من المستخدِم:

  • لا تحدٍ - طلب واستجابة لا يستخدمان اختبار التحقُّق الثانوي من المستخدِم
  • 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":

حملة ackneed بسيطة

يعرض هذا المثال طلبًا بسيطًا وردًّا باستخدام تحدّي "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"
    }]
  }
}

مطلوبة مع حالات السمات

يشير هذا المصطلح إلى مصادقة ثانوية لإقرار المستخدم يمكنها استخدام حالات لطلب إعادة النظر. محددة. على سبيل المثال، إذا كنت تعمل باستخدام سمة TemperatureSetting وكلاهما تم ضبط thermostatMode وthermostatTemperatureSetpoint، بإمكان "Assistant" السؤال عن هل تريد فعلاً ضبط التدفئة؟ على مكيّف الهواء إلى 28 درجة؟

يمكنك أيضًا تضمين حالة في رد للحصول على تنفِّذ Assistant إجراءً محدّدًا استنادًا إلى إجراء معيّن طلبك.

تتوافق السمات والحالات التالية مع ackNeeded مع حالات السمات. حاسمة سمة محددة تشير إلى أن جميع حالاتها مدعومة.

يعرض هذا المثال طلبًا واستجابة مع اختبار ackNeeded يستخدم حالة سمة. يغير وضع مكيّف الهواء إلى التدفئة ويضبط إلى 28 درجة. بعد ذلك، تطلب "Assistant" من المستخدمين لتشغيل التدفئة وضبط درجة الحرارة على 28 في مفتاح الإقرار درجات لأنّ thermostatTemperatureSetpoint من 28 يتم إرجاعها كولاية في الرد.

المستخدم ضبط وضع التكييف على التدفئة
Google Assistant هل المطلوب فعلاً ضبط درجة حرارة التدفئة في مكيّف الهواء على 28؟ درجات؟
المستخدم نعم.
Google Assistantnt يَتِمُّ الْآنْ ضَبْطْ حَرَارَةِ التَّدْفِئَة فِي مُكَيِّفِ الْهَوَاءْ عَلَى 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"
      }
    }]
  }
}

رقم التعريف الشخصي غير صحيح

يعرض هذا المثال الطلب والردّ باستخدام 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 - حسنًا

اطّلع على القائمة الكاملة الأخطاء والاستثناءات.