दूसरे उपयोगकर्ता की पुष्टि

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा से, आवाज़ से दिए जाने वाले निर्देशों में सुरक्षा की दूसरी लेयर जोड़ी जा सकती है. इससे, कुछ कार्रवाइयों के लिए सुरक्षा की एक और लेयर जोड़ी जा सकती है. जैसे, सुरक्षा कैमरा बंद करना या दरवाज़ा खोलना. उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा, किसी खास डिवाइस की खासियत से जुड़ी नहीं होती. इससे, यह तय किया जा सकता है कि Google AssistantGoogle Assistant कब चुनौती जारी करे. उदाहरण के लिए, सुरक्षा कैमरे के लिए OnOff खासियत के लिए चुनौती जारी की जा सकती है, लेकिन लाइट के लिए OnOff खासियत के लिए चुनौती जारी नहीं की जा सकती. कुछ स्थितियों में, एक ही कार्रवाई के लिए Assistant चुनौती जारी कर सकता है. उदाहरण के लिए, अगर एनएफ़सी कीफ़ोब, दरवाज़े के पास नहीं है, तो Assistant से दरवाज़ा खोलने के लिए चुनौती जारी करने का अनुरोध किया जा सकता है. हालांकि, अगर कीफ़ोब मौजूद है, तो चुनौती जारी करने का अनुरोध नहीं किया जा सकता.

Assistant दो तरह की चुनौतियां जारी कर सकता है - साफ़ तौर पर पुष्टि करना या निजी पहचान संख्या (पिन). इससे, QUERY और EXECUTE इंटेंट में चुनौती वाला ब्लॉक जुड़ जाता है. ये इंटेंट, Assistant से आपकी कार्रवाई पर वापस भेजे जाते हैं. साथ ही, challengeNeeded गड़बड़ी वाला जवाब स्वीकार किया जाता है. Assistant इसके बाद, चुनौती वाले ब्लॉक में चुनौती का डेटा शामिल करके, इंटेंट का अनुरोध आपकी कार्रवाई पर वापस भेजता है. इसके बाद, चुनौती के डेटा की पुष्टि करके यह पता लगाया जा सकता है कि उपयोगकर्ता ने सुरक्षा से जुड़ा सही जवाब दिया है या नहीं.

Assistant चुनौती जारी करने के लिए डायलॉग का इस्तेमाल करता है. हालांकि, अगर आप आवाज़ से कंट्रोल न किए जाने वाले डिवाइसों पर Assistant का इस्तेमाल करते हैं, तो पिन और पुष्टि की प्रोसेस स्क्रीन पर होती है.

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा का इस्तेमाल कब करना चाहिए

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा को, किसी भी डिवाइस टाइप या खासियत के लिए चालू किया जा सकता है. हालांकि, इंटिग्रेशन को सर्टिफ़िकेट पाने के लिए, सुरक्षा के लिहाज़ से संवेदनशील कुछ डिवाइस टाइप और खासियत के लिए, उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा को लागू करना ज़रूरी है.

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा को, pinNeeded चुनौती टाइप का इस्तेमाल करके, इन खासियत और डिवाइस टाइप के कॉम्बिनेशन के लिए लागू करना ज़रूरी है:

  • अगर डिवाइस टाइप CAMERA है, तो OnOff खासियत.
  • अगर डिवाइस टाइप DOOR, GARAGE, GATE या WINDOW है, तो OpenClose खासियत.
  • अनलॉक करने के लिए, LockUnlock खासियत.
  • डिसआर्म करने या डिसआर्म करने की प्रोसेस रद्द करने के लिए, ArmDisarm खासियत.
  • अगर डिवाइस टाइप NETWORK या ROUTER है, तो Reboot, SoftwareUpdate या NetworkControl ट्रेट.

अगर डिवाइस टाइप AC_UNIT है और इंटिग्रेशन की जगह जापान है, तो TemperatureSetting खासियत के लिए, ackNeeded चुनौती टाइप का इस्तेमाल करना ज़रूरी है.

चुनौती के टाइप

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली सुविधा के लिए, चुनौती के ये टाइप इस्तेमाल किए जा सकते हैं:

  • कोई चुनौती नहीं - ऐसा अनुरोध और जवाब जिसमें उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली चुनौती का इस्तेमाल नहीं किया जाता.
  • ackNeeded - उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली ऐसी सुविधा जिसमें साफ़ तौर पर पुष्टि करना (हां या नहीं) ज़रूरी है. साथ ही, जवाब के तौर पर खासियत की स्थितियों का इस्तेमाल भी किया जा सकता है. सुरक्षा डिवाइसों और खासियत के लिए, चुनौती के इस टाइप का इस्तेमाल करने का सुझाव नहीं दिया जाता.
  • pinNeeded - उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली ऐसी सुविधा जिसमें निजी पहचान संख्या (पिन) की ज़रूरत होती है. यह सुरक्षा डिवाइसों और खासियत के लिए सबसे सही है.

कोई चुनौती नहीं

इस उदाहरण में, लाइट चालू करने के लिए, चुनौती के बिना EXECUTE अनुरोध और जवाब दिखाया गया है.

उपयोगकर्ता लाइटें चालू करो.
Google Assistant ठीक है. तीन लाइटें चालू की जा रही हैं.
अनुरोध
{
  "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 लिविंग रूम की लाइट की रोशनी कम की जा रही है. क्या आपको वाकई ऐसा करना है?
उपयोगकर्ता हां.
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"
    }]
  }
}

ackNeeded with trait states

उपयोगकर्ता की पहचान की पुष्टि करने की दूसरे तरीके वाली ऐसी सुविधा जिसमें किसी खासियत के लिए स्थितियों का इस्तेमाल किया जा सकता है. उदाहरण के लिए, अगर TemperatureSetting खासियत का इस्तेमाल किया जा रहा है और thermostatMode और thermostatTemperatureSetpoint, दोनों सेट हैं, तो Assistant यह सवाल पूछ सकता है कि क्या आपको वाकई एयर कंडीशनर का तापमान 28 डिग्री सेल्सियस पर सेट करना है?

किसी दिए गए अनुरोध के आधार पर, Assistant से कोई खास कार्रवाई कराने के लिए, जवाब में स्थिति भी शामिल की जा सकती है.

इन खासियत और स्थितियों के लिए, ackNeeded चुनौती टाइप का इस्तेमाल किया जा सकता है: किसी खास खासियत की सूची से पता चलता है कि उसकी सभी स्थितियों के लिए, `ackNeeded` चुनौती टाइप का इस्तेमाल किया जा सकता है.

  • ArmDisarm
    • डिवाइस को आर्म करने या आर्म करने की प्रोसेस रद्द करने के लिए, ackNeeded चुनौती टाइप का इस्तेमाल करें. हालांकि, डिसआर्म करने और डिसआर्म करने की प्रोसेस रद्द करने के लिए, pinNeeded चुनौती टाइप का इस्तेमाल करना ज़रूरी है.
  • Fill
  • LockUnlock
    • डिवाइस को लॉक करने के लिए, ackNeeded चुनौती टाइप का इस्तेमाल करें. वहीं, अनलॉक करने के लिए, pinNeeded चुनौती टाइप का इस्तेमाल करना ज़रूरी है.
  • OnOff
    • on
    • इस खासियत के लिए, ackNeeded चुनौती टाइप का इस्तेमाल करें. CAMERA डिवाइसों के साथ इस खासियत का इस्तेमाल करने पर, pinNeeded चुनौती टाइप का इस्तेमाल करना ज़रूरी है.
  • OpenClose
    • इस खासियत के लिए, ackNeeded चुनौती टाइप का इस्तेमाल करें. इस खासियत का इस्तेमाल करने पर, pinNeeded चुनौती टाइप का इस्तेमाल करना ज़रूरी है.DOORGARAGEGATEWINDOW
  • Scene
  • TemperatureSetting
    • thermostatMode
    • thermostatTemperatureSetpoint
    • thermostatTemperatureSetpointHigh
    • thermostatTemperatureSetpointLow

इस उदाहरण में, ackNeeded चुनौती के साथ अनुरोध और जवाब दिखाया गया है. इसमें खासियत की स्थिति का इस्तेमाल किया गया है. इससे, एयर कंडीशनर का मोड बदलकर हीट पर सेट हो जाता है और तापमान 28 डिग्री सेल्सियस पर सेट हो जाता है. इसके बाद, Assistant उपयोगकर्ताओं से हीट को चालू करने और तापमान को 28 डिग्री सेल्सियस पर सेट करने की पुष्टि करने के लिए कहता है. ऐसा इसलिए, क्योंकि जवाब में स्थिति के तौर पर thermostatTemperatureSetpoint को 28 दिखाया गया है.

उपयोगकर्ता एसी का मोड बदलकर हीट पर सेट करो.
Google Assistant क्या आपको वाकई एयर कंडीशनर का तापमान 28 डिग्री सेल्सियस पर सेट करना है?
उपयोगकर्ता हां.
Google Assistant एयर कंडीशनर का तापमान 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 - ठीक है

गड़बड़ियों और अपवादों की पूरी सूची देखें .