কীভাবে স্মার্ট হোম অ্যাকশন তৈরি করতে হয় তা শেখার নতুন গন্তব্য Google হোম ডেভেলপার সেন্টারে স্বাগতম। দ্রষ্টব্য: আপনি অ্যাকশন কনসোলে নির্মাণ কাজ চালিয়ে যাবেন।

অ্যান্ড্রয়েডের জন্য অ্যাপ ফ্লিপ

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

একবার আপনার একটি OAuth 2.0 বাস্তবায়ন হয়ে গেলে, আপনি ঐচ্ছিকভাবে OAuth-ভিত্তিক App Flip , which allows your Android users to more quickly link their accounts in your authentication system to their Google accounts. The following sections describe how to design and implement App Flip for your smart home Action.

ডিজাইন নির্দেশিকা

এই বিভাগে অ্যাপ ফ্লিপ অ্যাকাউন্ট লিঙ্কিং কনসেন্ট স্ক্রীনের জন্য ডিজাইনের প্রয়োজনীয়তা এবং সুপারিশগুলি বর্ণনা করা হয়েছে। Google আপনার অ্যাপে কল করার পরে, আপনার অ্যাপ ব্যবহারকারীর কাছে সম্মতি স্ক্রিন প্রদর্শন করে।

প্রয়োজনীয়তা

  1. আপনাকে অবশ্যই যোগাযোগ করতে হবে যে ব্যবহারকারীর অ্যাকাউন্টটি Google-এর সাথে লিঙ্ক করা হচ্ছে, Google Home বা Google Assistant-এর মতো নির্দিষ্ট Google পণ্যের সাথে নয়

সুপারিশ

আমরা আপনাকে নিম্নলিখিতগুলি করার পরামর্শ দিই:

  1. Google এর গোপনীয়তা নীতি প্রদর্শন করুন। সম্মতি স্ক্রিনে Google-এর গোপনীয়তা নীতির একটি লিঙ্ক অন্তর্ভুক্ত করুন।

  2. ডেটা শেয়ার করতে হবে। ব্যবহারকারীকে তাদের Google-এর কোন ডেটা প্রয়োজন এবং কেন তা জানাতে স্পষ্ট এবং সংক্ষিপ্ত ভাষা ব্যবহার করুন।

  3. কল-টু-অ্যাকশন পরিষ্কার করুন। আপনার সম্মতি স্ক্রিনে একটি স্পষ্ট কল-টু-অ্যাকশন বলুন, যেমন "সম্মত হন এবং লিঙ্ক করুন।" এর কারণ হল ব্যবহারকারীদের বুঝতে হবে তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য Google-এর সাথে কী ডেটা শেয়ার করতে হবে।

  4. বাতিল করার ক্ষমতা। ব্যবহারকারীরা যদি লিঙ্ক না করতে চান তাহলে ফিরে যেতে বা বাতিল করার জন্য একটি উপায় প্রদান করুন৷

  5. লিঙ্কমুক্ত করার ক্ষমতা। ব্যবহারকারীদের আনলিঙ্ক করার জন্য একটি পদ্ধতি অফার করুন, যেমন আপনার প্ল্যাটফর্মে তাদের অ্যাকাউন্ট সেটিংসের URL। বিকল্পভাবে, আপনি Google অ্যাকাউন্টে একটি লিঙ্ক অন্তর্ভুক্ত করতে পারেন যেখানে ব্যবহারকারীরা তাদের লিঙ্ক করা অ্যাকাউন্ট পরিচালনা করতে পারে।

  6. ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করার ক্ষমতা। ব্যবহারকারীদের তাদের অ্যাকাউন্ট(গুলি) পরিবর্তন করার জন্য একটি পদ্ধতির পরামর্শ দিন। এটি বিশেষত উপকারী যদি ব্যবহারকারীদের একাধিক অ্যাকাউন্ট থাকে।

    • যদি কোনো ব্যবহারকারীকে অ্যাকাউন্ট পাল্টানোর জন্য সম্মতি স্ক্রীন বন্ধ করতে হয়, Google-এ একটি পুনরুদ্ধারযোগ্য ত্রুটি পাঠান যাতে ব্যবহারকারী OAuth লিঙ্কিং এবং অন্তর্নিহিত প্রবাহের মাধ্যমে পছন্দসই অ্যাকাউন্টে সাইন ইন করতে পারেন।
  7. আপনার লোগো অন্তর্ভুক্ত করুন. সম্মতি স্ক্রিনে আপনার কোম্পানির লোগো প্রদর্শন করুন। আপনার লোগো স্থাপন করতে আপনার শৈলী নির্দেশিকা ব্যবহার করুন. আপনি যদি Google এর লোগোও প্রদর্শন করতে চান তবে লোগো এবং ট্রেডমার্ক দেখুন।

এই চিত্রটি একটি উদাহরণ সম্মতি স্ক্রীন দেখায় যেখানে আপনি একটি ব্যবহারকারীর সম্মতি স্ক্রীন ডিজাইন করার সময় পৃথক প্রয়োজনীয়তা এবং সুপারিশ অনুসরণ করতে হবে।
চিত্র 1: অ্যাকাউন্ট লিঙ্ক করার সম্মতি স্ক্রীন ডিজাইন নির্দেশিকা।

OAuth-ভিত্তিক অ্যাপ ফ্লিপের জন্য সেট আপ করুন

নিম্নলিখিত বিভাগগুলি OAuth-ভিত্তিক অ্যাপ ফ্লিপের পূর্বশর্ত এবং অ্যাকশন কনসোলে আপনার অ্যাপ ফ্লিপ প্রকল্পটি কীভাবে কনফিগার করবেন তা বর্ণনা করে।

একটি স্মার্ট হোম অ্যাকশন তৈরি করুন এবং একটি OAuth 2.0 সার্ভার সেট আপ করুন৷

আপনি অ্যাপ ফ্লিপ কনফিগার করার আগে, আপনাকে নিম্নলিখিতগুলি করতে হবে:

অ্যাকশন কনসোলে অ্যাপ ফ্লিপ কনফিগার করুন

নিম্নলিখিত বিভাগটি বর্ণনা করে কিভাবে অ্যাকশন কনসোলে অ্যাপ ফ্লিপ কনফিগার করতে হয়।

  1. OAuth ক্লায়েন্ট তথ্যের অধীনে সমস্ত ক্ষেত্র পূরণ করুন। (যদি অ্যাপ ফ্লিপ সমর্থিত না হয়, তাহলে নিয়মিত OAuth ফলব্যাক হিসেবে ব্যবহার করা হয়।)
  2. অ্যাকাউন্ট লিঙ্ক করার জন্য আপনার অ্যাপ ব্যবহার করুন (ঐচ্ছিক) এর অধীনে, Android এর জন্য সক্ষম করুন চেক করুন।
  3. নিম্নলিখিত ক্ষেত্রগুলি পূরণ করুন:
    • আবেদন আইডি. অ্যাপ্লিকেশন আইডি হল একটি অনন্য আইডি যা আপনি আপনার অ্যাপের জন্য সেট করেছেন।
    • অ্যাপ স্বাক্ষর। অ্যান্ড্রয়েড অ্যাপগুলিকে ইনস্টল করার আগে অবশ্যই একটি পাবলিক-কী শংসাপত্র দিয়ে 'স্বাক্ষরিত' হতে হবে৷ আপনার অ্যাপ স্বাক্ষর পাওয়ার বিষয়ে তথ্যের জন্য, আপনার ক্লায়েন্ট প্রমাণীকরণ দেখুন।
    • অনুমোদন অভিপ্রায়. এই ক্ষেত্রে, একটি স্ট্রিং লিখুন যা আপনার অভিপ্রায় ক্রিয়া নির্দিষ্ট করে।
  4. আপনি যদি ঐচ্ছিকভাবে আপনার ক্লায়েন্ট কনফিগার করতে চান, স্কোপ যোগ করুন এবং আপনার ক্লায়েন্ট কনফিগার করুন (ঐচ্ছিক) এর অধীনে সুযোগ যোগ করুন ক্লিক করুন।
  5. Save এ ক্লিক করুন।

আপনার অ্যান্ড্রয়েড অ্যাপে অ্যাপ ফ্লিপ প্রয়োগ করুন

অ্যাপ ফ্লিপ বাস্তবায়ন করতে, Google থেকে একটি গভীর লিঙ্ক গ্রহণ করতে আপনাকে আপনার অ্যাপে ব্যবহারকারী অনুমোদন কোড পরিবর্তন করতে হবে।

OAuth-ভিত্তিক অ্যাপ ফ্লিপ লিঙ্কিং (অ্যাপ ফ্লিপ) আপনার অ্যান্ড্রয়েড অ্যাপকে Google অ্যাকাউন্ট লিঙ্কিং প্রবাহে সন্নিবেশিত করে। একটি ঐতিহ্যগত অ্যাকাউন্ট লিঙ্কিং প্রবাহের জন্য ব্যবহারকারীকে ব্রাউজারে তাদের শংসাপত্রগুলি প্রবেশ করতে হবে। অ্যাপ ফ্লিপের ব্যবহার আপনার অ্যান্ড্রয়েড অ্যাপে ব্যবহারকারীর সাইন-ইন স্থগিত করে, যা আপনাকে বিদ্যমান অনুমোদনের সুবিধা নিতে দেয়। ব্যবহারকারী যদি আপনার অ্যাপে সাইন ইন করে থাকেন, তাহলে তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য তাদের শংসাপত্রগুলি পুনরায় প্রবেশ করতে হবে না। আপনার অ্যান্ড্রয়েড অ্যাপে অ্যাপ ফ্লিপ প্রয়োগ করতে ন্যূনতম পরিমাণ কোড পরিবর্তন প্রয়োজন।

এই নথিতে, আপনি অ্যাপ ফ্লিপ সমর্থন করার জন্য আপনার Android অ্যাপটি কীভাবে পরিবর্তন করবেন তা শিখবেন।

নমুনা চেষ্টা করুন

অ্যাপ ফ্লিপ লিঙ্কিং নমুনা অ্যাপটি Android-এ একটি অ্যাপ ফ্লিপ-সামঞ্জস্যপূর্ণ অ্যাকাউন্ট লিঙ্কিং ইন্টিগ্রেশন প্রদর্শন করে। আপনি Google মোবাইল অ্যাপ থেকে একটি ইনকামিং অ্যাপ ফ্লিপ অভিপ্রায়ে কীভাবে প্রতিক্রিয়া জানাবেন তা যাচাই করতে এই অ্যাপটি ব্যবহার করতে পারেন।

নমুনা অ্যাপটি Android এর জন্য অ্যাপ ফ্লিপ টেস্ট টুলের সাথে একীভূত করার জন্য পূর্ব-কনফিগার করা হয়েছে, যা আপনি Google-এর সাথে অ্যাকাউন্ট লিঙ্কিং কনফিগার করার আগে অ্যাপ ফ্লিপের সাথে আপনার Android অ্যাপের একীকরণ যাচাই করতে ব্যবহার করতে পারেন। যখন অ্যাপ ফ্লিপ সক্ষম থাকে তখন এই অ্যাপটি Google মোবাইল অ্যাপের দ্বারা ট্রিগার করা অভিপ্রায়কে অনুকরণ করে।

কিভাবে এটা কাজ করে

একটি অ্যাপ ফ্লিপ ইন্টিগ্রেশন করার জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:

  1. Google অ্যাপ চেক করে যে আপনার অ্যাপটি ডিভাইসে ইনস্টল করা আছে কিনা তার প্যাকেজের নাম ব্যবহার করে।
  2. ইনস্টল করা অ্যাপটি সঠিক অ্যাপ তা যাচাই করতে Google অ্যাপ প্যাকেজ স্বাক্ষর চেক ব্যবহার করে।
  3. Google অ্যাপ আপনার অ্যাপে একটি মনোনীত কার্যকলাপ শুরু করার একটি অভিপ্রায় তৈরি করে। এই অভিপ্রায় লিঙ্ক করার জন্য প্রয়োজনীয় অতিরিক্ত ডেটা অন্তর্ভুক্ত করে। অ্যান্ড্রয়েড ফ্রেমওয়ার্কের মাধ্যমে এই অভিপ্রায় সমাধান করে আপনার অ্যাপ অ্যাপ ফ্লিপ সমর্থন করে কিনা তাও এটি পরীক্ষা করে।
  4. আপনার অ্যাপ যাচাই করে যে অনুরোধটি Google অ্যাপ থেকে আসছে। এটি করতে, আপনার অ্যাপ প্যাকেজ স্বাক্ষর এবং প্রদত্ত ক্লায়েন্ট আইডি পরীক্ষা করে।
  5. আপনার অ্যাপ আপনার OAuth 2.0 সার্ভার থেকে একটি অনুমোদন কোড অনুরোধ করে। এই প্রবাহের শেষে, এটি Google অ্যাপে একটি অনুমোদন কোড বা একটি ত্রুটি ফেরত দেয়।
  6. Google অ্যাপ ফলাফল পুনরুদ্ধার করে এবং অ্যাকাউন্ট লিঙ্ক করা চালিয়ে যায়। যদি একটি অনুমোদন কোড প্রদান করা হয়, টোকেন বিনিময় সার্ভার থেকে সার্ভার ঘটবে, একইভাবে এটি ব্রাউজার-ভিত্তিক OAuth লিঙ্কিং প্রবাহে করে।

অ্যাপ ফ্লিপ সমর্থন করতে আপনার অ্যান্ড্রয়েড অ্যাপ পরিবর্তন করুন

অ্যাপ ফ্লিপ সমর্থন করতে, আপনার Android অ্যাপে নিম্নলিখিত কোড পরিবর্তন করুন:

  1. আপনার AndroidManifest.xml ফাইলে একটি অ্যাকশন স্ট্রিং সহ একটি <intent-filter> যোগ করুন যা অ্যাপ ফ্লিপ ইন্টেন্ট ফিল্ডে আপনার প্রবেশ করা মানটির সাথে মেলে।

    <activity android:name="AuthActivity">
      <!-- Handle the app flip intent -->
      <intent-filter>
        <action android:name="INTENT_ACTION_FROM_CONSOLE"/>
        <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
    </activity>
    
  2. কলিং অ্যাপের স্বাক্ষর যাচাই করুন।

    private fun verifyFingerprint(
            expectedPackage: String,
            expectedFingerprint: String,
            algorithm: String
    ): Boolean {
    
        callingActivity?.packageName?.let {
            if (expectedPackage == it) {
                val packageInfo =
                    packageManager.getPackageInfo(it, PackageManager.GET_SIGNATURES)
                val signatures = packageInfo.signatures
                val input = ByteArrayInputStream(signatures[0].toByteArray())
    
                val certificateFactory = CertificateFactory.getInstance("X509")
                val certificate =
                    certificateFactory.generateCertificate(input) as X509Certificate
                val md = MessageDigest.getInstance(algorithm)
                val publicKey = md.digest(certificate.encoded)
                val fingerprint = publicKey.joinToString(":") { "%02X".format(it) }
    
                return (expectedFingerprint == fingerprint)
            }
        }
        return false
    }
    
  3. উদ্দেশ্য প্যারামিটার থেকে ক্লায়েন্ট আইডি বের করুন এবং যাচাই করুন যে ক্লায়েন্ট আইডি প্রত্যাশিত মানের সাথে মেলে।

    private const val EXPECTED_CLIENT = "<client-id-from-actions-console>"
    private const val EXPECTED_PACKAGE = "<google-app-package-name>"
    private const val EXPECTED_FINGERPRINT = "<google-app-signature>"
    private const val ALGORITHM = "SHA-256"
    ...
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        val clientId = intent.getStringExtra("CLIENT_ID")
    
        if (clientId == EXPECTED_CLIENT &&
            verifyFingerprint(EXPECTED_PACKAGE, EXPECTED_FINGERPRINT, ALGORITHM)) {
    
            // ...authorize the user...
        }
    }
    
  4. সফল অনুমোদনের পরে, ফলাফলের অনুমোদন কোডটি Google-এ ফেরত দিন।

    // Successful result
    val data = Intent().apply {
        putExtra("AUTHORIZATION_CODE", authCode)
    }
    setResult(Activity.RESULT_OK, data)
    finish()
    
  5. যদি একটি ত্রুটি ঘটেছে, পরিবর্তে একটি ত্রুটি ফলাফল ফেরত.

    // Error result
    val error = Intent().apply {
        putExtra("ERROR_TYPE", 1)
        putExtra("ERROR_CODE", 1)
        putExtra("ERROR_DESCRIPTION", "Invalid Request")
    }
    setResult(-2, error)
    finish()
    

লঞ্চের উদ্দেশ্য বিষয়বস্তু

অ্যান্ড্রয়েড অভিপ্রায় যা আপনার অ্যাপটি চালু করে তাতে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:

  • CLIENT_ID ( String ): Google client_id আপনার অ্যাপের অধীনে নিবন্ধিত।
  • SCOPE ( String[] ): অনুরোধ করা স্কোপের একটি তালিকা।
  • REDIRECT_URI ( String ): পুনঃনির্দেশ URL।

প্রতিক্রিয়া তথ্য বিষয়বস্তু

Google অ্যাপে ফেরত আসা ডেটা setResult() কল করে আপনার অ্যাপে সেট করা হয়েছে। এই তথ্য নিম্নলিখিত অন্তর্ভুক্ত:

  • AUTHORIZATION_CODE ( String ): অনুমোদন কোড মান।
  • ফলাফল int resultCode : প্রক্রিয়াটির সাফল্য বা ব্যর্থতার সাথে যোগাযোগ করে এবং নিম্নলিখিত মানগুলির মধ্যে একটি গ্রহণ করে:
    • Activity.RESULT_OK .RESULT_OK : সাফল্য নির্দেশ করে; একটি অনুমোদন কোড ফিরে আসে।
    • Activity.RESULT_CANCELLED . RESULT_CANCELLED : সংকেত যে ব্যবহারকারী প্রক্রিয়াটি বাতিল করেছে৷ এই ক্ষেত্রে, Google অ্যাপ আপনার অনুমোদন URL ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করবে।
    • -2 : ইঙ্গিত করে যে একটি ত্রুটি ঘটেছে। বিভিন্ন ধরণের ত্রুটি নীচে বর্ণনা করা হয়েছে।
  • ERROR_TYPE ( int ): ত্রুটির ধরন, যা নিম্নলিখিত মানগুলির মধ্যে একটি নেয়:
    • 1 : পুনরুদ্ধারযোগ্য ত্রুটি: Google অ্যাপ অনুমোদন URL ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করবে।
    • 2 : পুনরুদ্ধারযোগ্য ত্রুটি: Google অ্যাপ অ্যাকাউন্ট লিঙ্ক করা বাতিল করে।
    • 3 : অবৈধ বা অনুপস্থিত অনুরোধ পরামিতি.
  • ERROR_CODE ( int ): ত্রুটির প্রকৃতির প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা। প্রতিটি ত্রুটি কোডের অর্থ কী তা দেখতে, ত্রুটি কোডের সারণীটি পড়ুন।
  • ERROR_DESCRIPTION ( String , ঐচ্ছিক): মানব-পাঠযোগ্য স্থিতি বার্তা ত্রুটি বর্ণনা করে।

AUTHORIZATION_CODE-এর জন্য একটি মান প্রত্যাশিত যখন AUTHORIZATION_CODE resultCode == Activity.RESULT_OK । অন্য সব ক্ষেত্রে, AUTHORIZATION_CODE এর মান খালি থাকা দরকার। যদি resultCode == -2 হয়, তাহলে ERROR_TYPE মানটি জনবহুল হবে বলে আশা করা হচ্ছে।

ত্রুটি কোডের সারণী

নীচের সারণী বিভিন্ন ত্রুটি কোড দেখায় এবং প্রতিটি একটি পুনরুদ্ধারযোগ্য বা পুনরুদ্ধারযোগ্য ত্রুটি কিনা:

ভুল সংকেত অর্থ পুনরুদ্ধারযোগ্য পুনরুদ্ধারযোগ্য
1 INVALID_REQUEST
2 NO_INTERNET_CONNECTION
3 OFFLINE_MODE_ACTIVE
4 CONNECTION_TIMEOUT
5 INTERNAL_ERROR
6 AUTHENTICATION_SERVICE_UNAVAILABLE
8 CLIENT_VERIFICATION_FAILED
9 INVALID_CLIENT
10 INVALID_APP_ID
11 INVALID_REQUEST
12 AUTHENTICATION_SERVICE_UNKNOWN_ERROR
13 AUTHENTICATION_DENIED_BY_USER
14 CANCELLED_BY_USER
15 FAILURE_OTHER
16 USER_AUTHENTICATION_FAILED

সমস্ত ত্রুটি কোডের জন্য, যথাযথ ফলব্যাক ট্রিগার করা হয়েছে তা নিশ্চিত করতে আপনাকে অবশ্যই setResult এর মাধ্যমে ত্রুটির ফলাফল ফেরত দিতে হবে।

আপনার ডিভাইসে অ্যাপ ফ্লিপ পরীক্ষা করুন

এখন যেহেতু আপনি একটি অ্যাকশন তৈরি করেছেন এবং কনসোলে এবং আপনার অ্যাপে অ্যাপ ফ্লিপ কনফিগার করেছেন, আপনি আপনার মোবাইল ডিভাইসে অ্যাপ ফ্লিপ পরীক্ষা করতে পারেন। অ্যাপ ফ্লিপ পরীক্ষা করতে আপনি Google Assistant অ্যাপ বা Google Home অ্যাপ ব্যবহার করতে পারেন।

অ্যাসিস্ট্যান্ট অ্যাপ থেকে অ্যাপ ফ্লিপ পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে যান এবং আপনার প্রকল্প নির্বাচন করুন।
  2. শীর্ষ নেভিগেশন পরীক্ষা ক্লিক করুন.
  3. Assistant অ্যাপ থেকে অ্যাকাউন্ট লিঙ্কিং ফ্লো ট্রিগার করুন:
    1. Google Assistant অ্যাপ খুলুন।
    2. সেটিংস এ ক্লিক করুন।
    3. সহকারী ট্যাবে, হোম কন্ট্রোল ক্লিক করুন।
    4. Add(+) এ ক্লিক করুন।
    5. প্রদানকারীদের তালিকা থেকে আপনার অ্যাকশন নির্বাচন করুন। এটি তালিকায় "[পরীক্ষা]" এর সাথে প্রিফিক্স করা হবে। আপনি যখন তালিকা থেকে আপনার [পরীক্ষা] অ্যাকশন নির্বাচন করেন, তখন এটি আপনার অ্যাপ খুলবে।
    6. যাচাই করুন যে আপনার অ্যাপ চালু হয়েছে এবং আপনার অনুমোদন প্রবাহ পরীক্ষা করা শুরু করুন।

হোম অ্যাপ থেকে অ্যাপ ফ্লিপ পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলে যান এবং আপনার প্রকল্প নির্বাচন করুন।
  2. শীর্ষ নেভিগেশন পরীক্ষা ক্লিক করুন.
  3. Home অ্যাপ থেকে অ্যাকাউন্ট লিঙ্কিং ফ্লো ট্রিগার করুন:
    1. Google Home অ্যাপ খুলুন।
    2. + বোতামে ক্লিক করুন।
    3. ডিভাইস সেট আপ ক্লিক করুন.
    4. ক্লিক করুন কিছু ইতিমধ্যে সেট আপ করেছেন?
    5. প্রদানকারীদের তালিকা থেকে আপনার স্মার্ট হোম অ্যাকশন নির্বাচন করুন। এটি তালিকায় "[পরীক্ষা]" এর সাথে প্রিফিক্স করা হবে। আপনি যখন তালিকা থেকে আপনার [পরীক্ষা] অ্যাকশন নির্বাচন করেন, তখন এটি আপনার অ্যাপ খুলবে।
    6. যাচাই করুন যে আপনার অ্যাপ চালু হয়েছে এবং আপনার অনুমোদন প্রবাহ পরীক্ষা করা শুরু করুন।