अनुमतियां

उपयोगकर्ता से निजी डेटा पाने का अनुरोध करने के लिए, कार्रवाई में अनुमतियों का इस्तेमाल किया जा सकता है वे सिर्फ़ आपके अनुरोध को पूरा कर सकें. उदाहरण के लिए, खाने की डिलीवरी से जुड़ी कार्रवाई उपयोगकर्ता की जानकारी का अनुरोध करने के लिए, डिवाइस की जगह की जानकारी की अनुमति का इस्तेमाल कर सकता है स्थान.

जब आप अपनी सेट की गई कार्रवाई में कोई अनुमति जोड़ते हैं, तो Assistant एक स्टैंडर्ड दिखाती है. एक जैसा इंटरफ़ेस, जो उपयोगकर्ता से इस तरह की अनुमति का अनुरोध करता है: आपकी कार्रवाई की जानकारी.

उपलब्ध अनुमतियां

आपकी कार्रवाई इन अनुमतियों के लिए अनुरोध कर सकती है:

  • DEVICE_PRECISE_LOCATION: उपयोगकर्ता के डिवाइस की जगह की सटीक जानकारी का अनुरोध करता है (निर्देशांक और मोहल्ले का पता).
  • DEVICE_COARSE_LOCATION: उपयोगकर्ता के डिवाइस की अनुमानित जगह की जानकारी का अनुरोध करता है (पिन कोड और शहर).

अनुमतियां सेट अप करना

अपनी कार्रवाई के लिए अनुमतियां सेट करने के लिए, आप सीन. इसके बाद, डेटा की उस अनुमति के लिए स्लॉट कॉन्फ़िगर करें जिसका आपको अनुरोध करना है.

अनुमति स्लॉट का टाइप जोड़ें

आपके पास अपने ऐक्शन को इस तरह से उपयोगकर्ता की जानकारी हासिल करने की अनुमति देने का विकल्प होता है: actions.type.Permission स्लॉट टाइप.

इस स्लॉट टाइप को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. कार्रवाइयां कंसोल पर जाएं और चुनें या बनाएं यह भी हो सकता है.
  2. सबसे ऊपर मौजूद मेन्यू में, डेवलप करें पर क्लिक करें.
  3. सीन में जाकर, उस सीन पर क्लिक करें जिसमें आपको अनुमति का फ़्लो जोड़ना है.
  4. सीन के स्लॉट भरना सेक्शन में, नया स्लॉट जोड़ने के लिए + पर क्लिक करें.
  5. टाइप चुनें ड्रॉपडाउन में, actions.type.Permission स्लॉट टाइप चुनें.

  6. स्लॉट का नाम डालें फ़ील्ड में, स्लॉट को कोई नाम दें.

  7. किसी सेशन में नतीजा लिखने के लिए, कस्टम स्लॉट वैल्यू में राइटबैक चालू करना पैरामीटर.

स्लॉट कॉन्फ़िगर करें

अब आपके पास कॉन्टेक्स्ट स्ट्रिंग और अनुमतियों की सूची उपलब्ध कराने का विकल्प है स्लॉट कॉन्फ़िगर करना होगा. कॉन्टेक्स्ट स्ट्रिंग इस बात की वजह है कि उपयोगकर्ता से जानकारी मांगता है. इस जानकारी को तब दिखाया जाता है, जब उपयोगकर्ता ने आपकी कार्रवाई की अनुमति मांगी है.

स्लॉट कॉन्फ़िगर करें में जाकर, कॉन्टेक्स्ट स्ट्रिंग और अनुमतियों को कॉन्फ़िगर किया जा सकता है सेक्शन में, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है:

यह कोड स्निपेट, स्लॉट कॉन्फ़िगरेशन का एक उदाहरण दिखाता है:

{
  "@type": "type.googleapis.com/google.actions.conversation.v3.PermissionValueSpec",
  "context": "Context string",
  "permissions": ["DEVICE_PRECISE_LOCATION"]
}

उपयोगकर्ताओं को दिखाया जाने वाला प्रॉम्प्ट "$context_string" के तौर पर होगा. आपको Google से अपनी मौजूदा जगह की जानकारी चाहिए. क्या यह ठीक है?"

अनुमति कोड का इस्तेमाल करके, उपयोगकर्ताओं की इस तरह की जानकारी पाई जा सकती है:

अनुमति ब्यौरा
DEVICE_PRECISE_LOCATION डिवाइस की जगह की सटीक जानकारी (निर्देशांक और मोहल्ले का पता)
DEVICE_COARSE_LOCATION डिवाइस की अनुमानित जगह (पिन कोड और शहर)

अनुमति का नतीजा पाएं

इन सेक्शन में, अनुमति की स्थिति देखने और उसे पढ़ने का तरीका बताया गया है अगर उपयोगकर्ता ने अनुमति दी है, तो उसकी जानकारी.

अनुमति की स्थिति देखें

जब उपयोगकर्ता अनुमति देता है, तो नतीजे के तौर पर मिलने वाले स्टेटस को सेशन में लिखा जाता है पैरामीटर.

आप किसी सीन की स्थिति में session.params.<slot_name>.permissionStatus.

अनुमति स्लॉट की स्थिति देखने के लिए, यह तरीका अपनाएं:

  1. कार्रवाइयां कंसोल पर जाएं और क्लिक करें सबसे ऊपर मौजूद मेन्यू में, डेवलप करें.
  2. सीन में जाकर, उस सीन पर क्लिक करें जिसमें अनुमति का स्लॉट है.
  3. नई इमेज जोड़ने के लिए, सीन के शर्त सेक्शन में जाकर, + पर क्लिक करें स्थिति.
  4. अनुमति की स्थिति देखने के लिए, यहां दी गई शर्त डालें (जहां &lt;slot_name&gt;, उस सेशन पैरामीटर का नाम है जिसे आपने स्लॉट):

    scene.slots.status == "FINAL" && (session.params.<slot_name>.permissionStatus == "PERMISSION_GRANTED" || session.params.<slot_name>.permissionStatus == "ALREADY_GRANTED")
    

  5. नई इमेज जोड़ने के लिए, सीन के शर्त सेक्शन में जाकर, + पर क्लिक करें स्थिति.

  6. जहां उपयोगकर्ता अपनी जानकारी शेयर करने की सहमति देते हैं:

    scene.slots.status == "FINAL"
    

  7. नई इमेज जोड़ने के लिए, सीन के शर्त सेक्शन में जाकर, + पर क्लिक करें स्थिति.

  8. जिस मामले में उपयोगकर्ता ने पहले ही उसे शामिल कर लिया है उसे मैनेज करने के लिए नीचे दी गई शर्त डालें को अनुमति दी गई है, और दोबारा मांगने की ज़रूरत नहीं है:

    "DEVICE_PRECISE_LOCATION" in user.permissions
    

उपयोगकर्ता की जानकारी पढ़ें

अगर उपयोगकर्ता अनुमति देता है, तो उपयोगकर्ता की जानकारी को ब्लॉक कर दिया जाएगा.

नीचे दिए गए स्निपेट में, आपको डिवाइस की जगह की जानकारी दिखेगी device.currentLocation के तहत वेबहुक के अनुरोध में शामिल है:

JSON का अनुरोध करें
  {
      "handler": {
        "name": "handler"
      },
      "intent": {
        "name": "",
        "params": {
          "deviceLoc": {
            "original": "",
            "resolved": {
              "@type": "type.googleapis.com/google.actions.conversation.v3.PermissionValue",
              "permissionStatus": "PERMISSION_GRANTED",
              "grantedPermissions": [
                "DEVICE_PRECISE_LOCATION"
              ]
            }
          }
        },
        "query": "Yes"
      },
      "scene": {
        "name": "Scene",
        "slotFillingStatus": "FINAL",
        "slots": {
          "deviceLoc": {
            "mode": "REQUIRED",
            "status": "SLOT_UNSPECIFIED",
            "value": {
              "grantedPermissions": [
                "DEVICE_PRECISE_LOCATION"
              ],
              "@type": "type.googleapis.com/google.actions.conversation.v3.PermissionValue",
              "permissionStatus": "PERMISSION_GRANTED"
            },
            "updated": true
          }
        },
        "next": {
          "name": "actions.scene.END_CONVERSATION"
        }
      },
      "session": {
        "id": "session_id",
        "params": {
          "deviceLoc": {
            "grantedPermissions": [
              "DEVICE_PRECISE_LOCATION"
            ],
            "permissionStatus": "PERMISSION_GRANTED",
            "@type": "type.googleapis.com/google.actions.conversation.v3.PermissionValue"
          }
        },
        "typeOverrides": [],
        "languageCode": ""
      },
      "user": {
        "locale": "en-US",
        "params": {},
        "accountLinkingStatus": "ACCOUNT_LINKING_STATUS_UNSPECIFIED",
        "verificationStatus": "VERIFIED",
        "packageEntitlements": [],
        "permissions": [
          "DEVICE_PRECISE_LOCATION"
        ],
        "lastSeenTime": "2021-02-08T20:43:47Z"
      },
      "home": {
        "params": {}
      },
      "device": {
        "capabilities": [
          "SPEECH",
          "RICH_RESPONSE",
          "LONG_FORM_AUDIO"
        ],
        "currentLocation": {
          "coordinates": {
            "latitude": 37.422,
            "longitude": -122.084
          },
          "postalAddress": {
            "revision": 0,
            "regionCode": "US",
            "languageCode": "en",
            "postalCode": "94043",
            "sortingCode": "",
            "administrativeArea": "California",
            "locality": "Mountain View",
            "sublocality": "",
            "addressLines": ["1600 Amphitheatre Parkway"],
            "recipients": [],
            "organization": ""
          }
        }
      }
    }
    

जगह के टाइप के स्कीमा के बारे में ज़्यादा जानने के लिए, Location रेफ़रंस.

अपने वेबहुक से अनुरोध में शामिल जानकारी को ऐक्सेस किया जा सकता है, जैसा कि नीचे दिखाया गया है स्निपेट में:

वेबहुक
  app.handle('handler', (conv) => {
    let location = conv.device.currentLocation;
    conv.add(`Your postal code is ${location.postalCode}`);
  });
    

प्रॉम्प्ट में अनुमति का इस्तेमाल करें

स्टैटिक प्रॉम्प्ट में भी अनुमति का रेफ़रंस दिया जा सकता है. उदाहरण के लिए, डिवाइस की जगह की जानकारी के लिए, $device.currentLocation.coordinates.* और $device.currentLocation.postalAddress.* का इस्तेमाल किया जा सकता है. नीचे दिया गया कोड स्निपेट, प्रॉम्प्ट में उपयोगकर्ता के शहर की जानकारी देने का तरीका बताता है:

candidates:
  - first_simple:
      variants:
        - speech: >-
            There are no events scheduled tomorrow in the city of $device.currentLocation.postalAddress.locality.