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

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

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

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

साथ काम करने वाले डिवाइस के टाइप

उपयोगकर्ता की पहचान की पुष्टि करने का दूसरा तरीका, सभी तरह के डिवाइसों पर काम करता है.

साथ काम करने वाले डिवाइस के लक्षण

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

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

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

  • कोई चैलेंज नहीं - ऐसा अनुरोध और जवाब जिसमें उपयोगकर्ता की पुष्टि करने के लिए, दूसरा चैलेंज इस्तेमाल नहीं किया गया है.
  • 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
          }
        }]
      }]
    }
  }]
}
जवाब 1
{
  "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 के साथ ट्रैट की स्थितियां

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

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

नीचे दिए गए ट्रैट और स्थितियां, ट्रैट की स्थितियों के साथ ackNeeded के साथ काम करती हैं. किसी खास विशेषता की सूची से पता चलता है कि उसके सभी स्टेटस काम करते हैं.

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

उपयोगकर्ता एसी मोड को हीट पर सेट करें.
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"
          }
        }]
      }]
    }
  }]
}
जवाब 1
{
  "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 - ठीक है

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