يتيح التحقق من المستخدم الثانوي إضافة عامل الأمان الثاني إلى الصوت. الأوامر. يتيح لك ذلك إضافة المزيد من الأمان لإجراءات معيّنة، مثل إطفاء كاميرا مراقبة أو فتح باب عملية التحقق من المستخدم الثانوي هي غير مرتبطة بسمة جهاز معينة تسمح لك بتحديد متى يجب يصدر "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 | جارٍ تعتيم الإضاءة في غرفة المعيشة. |
{ "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" }] } }
مطلوبة مع حالات السمات
يشير هذا المصطلح إلى مصادقة ثانوية لإقرار المستخدم يمكنها استخدام حالات لطلب إعادة النظر.
محددة.
على سبيل المثال، إذا كنت تعمل باستخدام
سمة TemperatureSetting وكلاهما
تم ضبط thermostatMode
وthermostatTemperatureSetpoint
،
بإمكان "Assistant" السؤال عن هل تريد فعلاً ضبط التدفئة؟
على مكيّف الهواء إلى 28 درجة؟
يمكنك أيضًا تضمين حالة في رد للحصول على تنفِّذ Assistant إجراءً محدّدًا استنادًا إلى إجراء معيّن طلبك.
تتوافق السمات والحالات التالية مع ackNeeded
مع حالات السمات. حاسمة
سمة محددة تشير إلى أن جميع حالاتها مدعومة.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
يعرض هذا المثال طلبًا واستجابة مع اختبار ackNeeded
يستخدم حالة سمة. يغير وضع مكيّف الهواء إلى التدفئة ويضبط
إلى 28 درجة. بعد ذلك، تطلب "Assistant" من المستخدمين
لتشغيل التدفئة وضبط درجة الحرارة على 28 في مفتاح الإقرار
درجات لأنّ thermostatTemperatureSetpoint
من 28
يتم إرجاعها كولاية
في الرد.
المستخدم | ضبط وضع التكييف على التدفئة |
Google Assistant | هل المطلوب فعلاً ضبط درجة حرارة التدفئة في مكيّف الهواء على 28؟ درجات؟ |
المستخدم | نعم. |
Google Assistantnt | يَتِمُّ الْآنْ ضَبْطْ حَرَارَةِ التَّدْفِئَة فِي مُكَيِّفِ الْهَوَاءْ عَلَى 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
.
معين. يعرض المثال إجابة تتضمّن التحدّي 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 - حسنًا
اطّلع على القائمة الكاملة الأخطاء والاستثناءات.