ত্রুটি এবং ব্যতিক্রমগুলি পরিচালনা করুন

যখন ডিভাইস বা অনুরোধগুলি প্রত্যাশা অনুযায়ী কাজ না করে, তখন আপনার ব্যবহারকারীদের জন্য ভালো ত্রুটি পরিচালনা এবং যোগাযোগ প্রদান করা গুরুত্বপূর্ণ যাতে তারা বুঝতে পারে কী ঘটেছে এবং যখনই সম্ভব, কীভাবে এটি সংশোধন করা যায়। সম্ভাব্য ব্যর্থতার পরিস্থিতিগুলি এবং আপনার ডিভাইসটি কীভাবে প্রতিক্রিয়া জানাবে তা ভেবে দেখুন: যদি কোনও ব্যবহারকারী কোনও কাজকে বাধাগ্রস্ত করে তবে কী হবে? যদি কোনও ব্যবহারকারী অফলাইনে থাকা অবস্থায় কোনও ডিভাইস থেকে কোনও পদক্ষেপের অনুরোধ করে তবে কী হবে? এই সমস্যাগুলির জন্য পরিকল্পনা করা এবং আপনার ব্যবহারকারীকে সেগুলি থেকে পুনরুদ্ধার করতে সহায়তা করা ব্যবহারকারীদের হতাশা এড়াতে পারে এবং আপনার ডিভাইসগুলির জন্য একটি উচ্চ মানের অভিজ্ঞতা তৈরি করতে পারে।

এই নির্দেশিকাটিতে ত্রুটিগুলি পরিচালনা করে এমন কিছু ইনটেন্ট রেসপন্সের উদাহরণ দেওয়া হয়েছে। ত্রুটি এবং ব্যতিক্রমগুলির জন্য বৈধ errorCode মানগুলি পর্যালোচনা করতে ত্রুটি এবং ব্যতিক্রমগুলি দেখুন।

উদাহরণ ১: EXECUTE ইন্টেন্টের জন্য ত্রুটির প্রতিক্রিয়া

একজন ব্যবহারকারীর লিভিং রুমে দুটি স্মার্ট লাইট ইনস্টল করা আছে। ব্যবহারকারী "লিভিং রুমের লাইট চালু করুন" কমান্ডটি জারি করে এবং গুগল আপনার পূরণ URL এ একটি EXECUTE ইন্টেন্ট পাঠায়। আপনি দেখেছেন যে ব্যবহারকারীর ডিভাইসগুলি অফলাইনে রয়েছে এবং নিয়ন্ত্রণযোগ্য নয়, তাই আপনার পূরণটি ERROR এবং errorCode deviceOffline status সহ একটি EXECUTE প্রতিক্রিয়া ফেরত পাঠায়।

এই উদাহরণটি দেখায় যে কীভাবে একটি হালকা ডিভাইস থেকে errorCode সহ একটি EXECUTE প্রতিক্রিয়া ফেরত পাঠানো যায়, যেমনটি আগে বর্ণিত হয়েছে:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "light-device-id-1"
        ],
        "status": "ERROR",
        "errorCode": "deviceOffline"
      },
      {
        "ids": [
          "light-device-id-2"
        ],
        "status": "ERROR",
        "errorCode": "deviceOffline"
      }
    ]
  }
}

উত্তর পাওয়ার পর Google Assistant ব্যবহারকারীকে " ডিভাইসটি এখনই উপলব্ধ নয়" বলে অনুরোধ করে। মনে রাখবেন, EXECUTE উত্তরে errorCode deviceOffline পাঠানোর পরেও রিপোর্ট অবস্থায় থাকা ডিভাইসগুলির জন্য অফলাইন অবস্থা পাঠাতে হবে।

উদাহরণ ২: EXECUTE ইন্টেন্টের জন্য নন-ব্লকিং ব্যতিক্রম

একজন ব্যবহারকারী Assistant ব্যবহার করে তাদের সামনের দরজার স্মার্ট লকটি লক করার চেষ্টা করেন। আপনি তাদের লকটি সফলভাবে নিয়ন্ত্রণ করতে পারেন কিন্তু আপনি দেখতে পান যে ডিভাইসের ব্যাটারি কম, তাই আপনার পূর্ণতা SUCCESS status এবং exceptionCode lowBattery সহ একটি EXECUTE প্রতিক্রিয়া প্রদান করে।

এই উদাহরণটি দেখায় যে কীভাবে একটি লক ডিভাইস থেকে exceptionCode ব্যবহার করে একটি EXECUTE প্রতিক্রিয়া পাঠানো যায়, যেমনটি আগে বর্ণিত হয়েছে:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["lock-device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isLocked": true,
        "isJammed": false,
        "exceptionCode": "lowBattery"
      }
    }]
  }
}

প্রতিক্রিয়া পাওয়ার পর Assistant ব্যবহারকারীকে " ডিভাইসের ব্যাটারি কম আছে" বলে অনুরোধ করে।

উদাহরণ ৩: সক্রিয় ত্রুটি বিজ্ঞপ্তি

কিছু ক্ষেত্রে, ব্যবহারকারীদের ত্রুটি সম্পর্কে সতর্ক করা সহায়ক হতে পারে, বিশেষ করে এমন ফাংশনগুলির জন্য যা ব্যবহারকারীরা স্বয়ংক্রিয়ভাবে সম্পন্ন করার আশা করেন। প্রোঅ্যাকটিভ নোটিফিকেশন সমর্থন করে এমন বৈশিষ্ট্যগুলির জন্য, যদি আপনি smart home প্রোঅ্যাকটিভ নোটিফিকেশন বাস্তবায়ন করে থাকেন তবে ত্রুটি ঘটলে আপনি ব্যবহারকারীকে সক্রিয়ভাবে অবহিত করতে পারেন।

একটি স্মার্ট ড্রায়ার চলছে, এবং চক্রটি শেষ হওয়ার আগেই কেউ দরজা খুলে দেয়। আপনি Google Home Graph API reportStateAndNotifications পদ্ধতিতে কল করে একটি errorCode সহ একটি প্রোঅ্যাকটিভ নোটিফিকেশন পাঠাতে পারেন:

এই উদাহরণটি দেখায় যে কীভাবে একটি ড্রায়ার ডিভাইস থেকে errorCode সহ একটি প্রোঅ্যাকটিভ নোটিফিকেশন পাঠানো যায়, যেমনটি আগে বর্ণিত হয়েছে:

POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id",
  "eventId": "unique-event-id",
  "payload": {
    "devices": {
      "notifications": {
        "dryer-device-id": {
          "RunCycle": {
            "priority": 0,
            "status": "FAILURE",
            "errorCode": "deviceDoorOpen"
          }
        }
      },
      "states": {
        "dryer-device-id": {
          "isRunning": false,
          "isPaused": true
        }
      }
    }
  }
}

বিজ্ঞপ্তি পাওয়ার পর Assistant ব্যবহারকারীকে " ডিভাইসের দরজা খোলা হয়েছে" বলে অনুরোধ করে। আপনি একই পেলোডে বিজ্ঞপ্তির পাশাপাশি সংশ্লিষ্ট ডিভাইসের অবস্থা পাঠাতে পারেন।

উদাহরণ ৪: ফলো-আপ বিজ্ঞপ্তি

ফলো-আপ বিজ্ঞপ্তি সমর্থন করে এমন বৈশিষ্ট্য কমান্ডের জন্য, যদি আপনি smart home ফলো-আপ বিজ্ঞপ্তিগুলি বাস্তবায়ন করে থাকেন তবে কোনও ত্রুটি বা ব্যতিক্রম ঘটলে আপনি ব্যবহারকারীকে একটি ফলো-আপ বিজ্ঞপ্তি পাঠাতে পারেন।

একজন ব্যবহারকারী তার গ্যারেজের দরজা বন্ধ করার জন্য একটি নির্দেশ জারি করেন, কিন্তু দরজা বন্ধ করার সময় জ্যাম হয়ে যায়। আপনি errorCode সহ একটি ফলো-আপ বিজ্ঞপ্তি পাঠাতে পারেন:

POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id",
  "eventId": "unique-event-id",
  "payload": {
    "devices": {
      "notifications": {
        "door-device-id": {
          "LockUnlock": {
            "priority": 0,
            "followUpResponse": {
              "status": "FAILURE",
              "errorCode": "deviceJammingDetected",
              "followUpToken": "follow-up-token-1"
            }
          }
        }
      },
      "states": {
        "door-device-id": {
          "openPercent": 70
        }
      }
    }
  }
}

বিজ্ঞপ্তি পাওয়ার পর Assistant ব্যবহারকারীকে " ডিভাইসটি জ্যাম হয়ে গেছে" বলে অনুরোধ করে। আপনি একই পেলোডে বিজ্ঞপ্তি সহ সংশ্লিষ্ট ডিভাইসের অবস্থা পাঠাতে পারেন।

আরও তথ্য এবং বিস্তারিত errorCodes এর জন্য, ত্রুটি এবং ব্যতিক্রম রেফারেন্স ডকুমেন্টেশন দেখুন।