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

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

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

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

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

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

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

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

चैलेंज के वे टाइप जिनका इस्तेमाल किया जा सकता है

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

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

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

इस उदाहरण में, 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

उपयोगकर्ता की पुष्टि करने का दूसरा तरीका, जो Trait या सामान्य पुष्टि की प्रक्रिया के लिए, कई स्थितियों का इस्तेमाल कर सकता है.

इस तरह के 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"
    }]
  }
}

Trait की स्थितियों के साथ स्वीकार किया गया

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

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

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

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

उपयोगकर्ता एसी मोड को गर्म मोड पर सेट करें.
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"
      }
    }]
  }
}

गड़बड़ी के जवाब

यहां कुछ गड़बड़ी कोड दिए गए हैं, जिन्हें आपके जवाबों के साथ देखा जा सकता है:

  • challengeFailedNotSetup - इस कार्रवाई के लिए सुरक्षा कोड की ज़रूरत है, लेकिन इसे आपके डिवाइस के ऐप्लिकेशन में सेट अप नहीं किया गया है.
  • tooManyFailedAttempts - माफ़ करें, कई बार कोशिश की जा चुकी है. उस कार्रवाई को पूरा करने के लिए, कृपया अपने डिवाइस के ऐप्लिकेशन पर जाएं.
  • pinIncorrect - माफ़ करें, सुरक्षा कोड गलत है.
  • userCancelled - ठीक है.

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