SafetyNet reCAPTCHA API

SafetyNet পরিষেবাটিতে একটি reCAPTCHA API রয়েছে যা আপনি আপনার অ্যাপকে ক্ষতিকারক ট্র্যাফিক থেকে রক্ষা করতে ব্যবহার করতে পারেন।

reCAPTCHA হল একটি বিনামূল্যের পরিষেবা যা আপনার অ্যাপটিকে স্প্যাম এবং অন্যান্য আপত্তিকর ক্রিয়াকলাপ থেকে রক্ষা করার জন্য একটি উন্নত ঝুঁকি বিশ্লেষণ ইঞ্জিন ব্যবহার করে। যদি পরিষেবাটি সন্দেহ করে যে আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা ব্যবহারকারী কোনও মানুষের পরিবর্তে একজন বট হতে পারে, তাহলে এটি একটি CAPTCHA প্রদান করে যা আপনার অ্যাপটি কার্যকর করার আগে একজন মানুষকে সমাধান করতে হবে।

এই ডকুমেন্টটি ব্যাখ্যা করে কিভাবে SafetyNet থেকে reCAPTCHA API আপনার অ্যাপে ইন্টিগ্রেট করবেন।

অতিরিক্ত পরিষেবার শর্তাবলী

reCAPTCHA API অ্যাক্সেস করে বা ব্যবহার করে, আপনি Google API-এর পরিষেবার শর্তাবলী এবং নিম্নলিখিত reCAPTCHA পরিষেবার শর্তাবলীতে সম্মত হচ্ছেন। API-গুলি অ্যাক্সেস করার আগে অনুগ্রহ করে সমস্ত প্রযোজ্য শর্তাবলী এবং নীতিগুলি পড়ুন এবং বুঝুন।

reCAPTCHA পরিষেবার শর্তাবলী

আপনি স্বীকার করেন এবং বোঝেন যে reCAPTCHA API ডিভাইস এবং অ্যাপ্লিকেশন ডেটা এবং অখণ্ডতা পরীক্ষার ফলাফলের মতো হার্ডওয়্যার এবং সফ্টওয়্যার তথ্য সংগ্রহ করে এবং বিশ্লেষণের জন্য সেই ডেটা Google-এ প্রেরণ করে কাজ করে। Google API পরিষেবার শর্তাবলীর ধারা 3(d) অনুসারে, আপনি সম্মত হন যে আপনি যদি API ব্যবহার করেন তবে Google-এর সাথে এই ডেটা সংগ্রহ এবং ভাগ করে নেওয়ার জন্য প্রয়োজনীয় নোটিশ বা সম্মতি প্রদান করা আপনার দায়িত্ব।

একটি reCAPTCHA কী জোড়া নিবন্ধন করুন

SafetyNet reCAPTCHA API-এর সাথে ব্যবহারের জন্য একটি কী পেয়ার নিবন্ধন করতে, reCAPTCHA Android সাইনআপ সাইটে যান, তারপর নিম্নলিখিত ধাপগুলির ক্রম সম্পূর্ণ করুন:

  1. যে ফর্মটি প্রদর্শিত হবে, তাতে নিম্নলিখিত তথ্যগুলি প্রদান করুন:

    • লেবেল: আপনার কী-এর জন্য একটি অনন্য লেবেল। সাধারণত, আপনি আপনার কোম্পানি বা প্রতিষ্ঠানের নাম ব্যবহার করেন।
    • reCAPTCHA টাইপ: reCAPTCHA v2 নির্বাচন করুন, তারপর reCAPTCHA Android নির্বাচন করুন।
    • প্যাকেজ: এই API কী ব্যবহার করে এমন প্রতিটি অ্যাপের প্যাকেজের নাম দিন। কোনও অ্যাপ API ব্যবহার করতে চাইলে, আপনার প্রবেশ করা প্যাকেজের নামটি অ্যাপের প্যাকেজ নামের সাথে হুবহু মিলতে হবে। প্রতিটি প্যাকেজের নাম তার নিজস্ব লাইনে লিখুন।
    • মালিক: আপনার প্রতিষ্ঠানের প্রতিটি ব্যক্তির জন্য একটি ইমেল ঠিকানা যোগ করুন যারা আপনার অ্যাপের reCAPTCHA মূল্যায়ন পর্যবেক্ষণ করে।
  2. "reCAPTCHA পরিষেবার শর্তাবলী গ্রহণ করুন" চেকবক্সটি নির্বাচন করুন।

  3. মালিকদের কাছে সতর্কতা পাঠান: reCAPTCHA API সম্পর্কে ইমেল পেতে চাইলে এই চেকবক্সটি নির্বাচন করুন, তারপর Submit এ ক্লিক করুন।

  4. পরবর্তীতে প্রদর্শিত পৃষ্ঠায়, আপনার পাবলিক এবং প্রাইভেট কীগুলি যথাক্রমে সাইট কী এবং সিক্রেট কী এর অধীনে প্রদর্শিত হবে। যাচাইকরণের অনুরোধ পাঠানোর সময় আপনি সাইট কী ব্যবহার করেন এবং ব্যবহারকারীর প্রতিক্রিয়া টোকেন যাচাই করার সময় আপনি গোপন কী ব্যবহার করেন।

SafetyNet API নির্ভরতা যোগ করুন

reCAPTCHA API ব্যবহার করার আগে, আপনার প্রোজেক্টে SafetyNet API যোগ করুন। যদি আপনি Android Studio ব্যবহার করেন, তাহলে আপনার অ্যাপ-লেভেল Gradle ফাইলে এই নির্ভরতা যোগ করুন। আরও তথ্যের জন্য, SafetyNet API সেটআপ দেখুন।

reCAPTCHA API ব্যবহার করুন

এই বিভাগে বর্ণনা করা হয়েছে কিভাবে reCAPTCHA API-তে কল করে CAPTCHA যাচাইকরণ অনুরোধ পাঠাতে হয় এবং ব্যবহারকারীর প্রতিক্রিয়া টোকেন গ্রহণ করতে হয়।

যাচাইয়ের অনুরোধ পাঠান

SafetyNet reCAPTCHA API চালু করতে, আপনাকে verifyWithRecaptcha() পদ্ধতিটি কল করতে হবে। সাধারণত, এই পদ্ধতিটি ব্যবহারকারীর আপনার কার্যকলাপে একটি UI উপাদান, যেমন একটি বোতাম, নির্বাচন করার সাথে মিলে যায়।

আপনার অ্যাপে verifyWithRecaptcha() পদ্ধতি ব্যবহার করার সময়, আপনাকে নিম্নলিখিতগুলি করতে হবে:

  • আপনার API সাইট কীটি প্যারামিটার হিসেবে প্রবেশ করান।
  • যাচাইকরণ অনুরোধের টাস্কের সম্ভাব্য ফলাফল পরিচালনা করার জন্য onSuccess() এবং onFailure() পদ্ধতিগুলিকে ওভাররাইড করুন। বিশেষ করে, যদি API ApiException এর একটি উদাহরণ onFailure() এ পাস করে, তাহলে আপনাকে getStatusCode() ব্যবহার করে পুনরুদ্ধার করা যেতে পারে এমন প্রতিটি সম্ভাব্য স্ট্যাটাস কোড পরিচালনা করতে হবে।

নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে এই পদ্ধতিটি চালু করতে হয়:

কোটলিন

fun onClick(view: View) {
    SafetyNet.getClient(this).verifyWithRecaptcha(YOUR_API_SITE_KEY)
            .addOnSuccessListener(this as Executor, OnSuccessListener { response ->
                // Indicates communication with reCAPTCHA service was
                // successful.
                val userResponseToken = response.tokenResult
                if (response.tokenResult?.isNotEmpty() == true) {
                    // Validate the user response token using the
                    // reCAPTCHA siteverify API.
                }
            })
            .addOnFailureListener(this as Executor, OnFailureListener { e ->
                if (e is ApiException) {
                    // An error occurred when communicating with the
                    // reCAPTCHA service. Refer to the status code to
                    // handle the error appropriately.
                    Log.d(TAG, "Error: ${CommonStatusCodes.getStatusCodeString(e.statusCode)}")
                } else {
                    // A different, unknown type of error occurred.
                    Log.d(TAG, "Error: ${e.message}")
                }
            })
}

জাভা

public void onClick(View v) {
    SafetyNet.getClient(this).verifyWithRecaptcha(YOUR_API_SITE_KEY)
        .addOnSuccessListener((Executor) this,
            new OnSuccessListener<SafetyNetApi.RecaptchaTokenResponse>() {
                @Override
                public void onSuccess(SafetyNetApi.RecaptchaTokenResponse response) {
                    // Indicates communication with reCAPTCHA service was
                    // successful.
                    String userResponseToken = response.getTokenResult();
                    if (!userResponseToken.isEmpty()) {
                        // Validate the user response token using the
                        // reCAPTCHA siteverify API.
                    }
                }
        })
        .addOnFailureListener((Executor) this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    if (e instanceof ApiException) {
                        // An error occurred when communicating with the
                        // reCAPTCHA service. Refer to the status code to
                        // handle the error appropriately.
                        ApiException apiException = (ApiException) e;
                        int statusCode = apiException.getStatusCode();
                        Log.d(TAG, "Error: " + CommonStatusCodes
                                .getStatusCodeString(statusCode));
                    } else {
                        // A different, unknown type of error occurred.
                        Log.d(TAG, "Error: " + e.getMessage());
                    }
                }
        });
}

ব্যবহারকারীর প্রতিক্রিয়া টোকেন যাচাই করুন

যখন reCAPTCHA API onSuccess() পদ্ধতিটি কার্যকর করে, তখন ব্যবহারকারী সফলভাবে CAPTCHA চ্যালেঞ্জটি সম্পন্ন করেছেন। তবে, এই পদ্ধতিটি কেবল ইঙ্গিত দেয় যে ব্যবহারকারী CAPTCHA সঠিকভাবে সমাধান করেছেন। আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহারকারীর প্রতিক্রিয়া টোকেনটি এখনও যাচাই করতে হবে।

ব্যবহারকারীর প্রতিক্রিয়া টোকেন কীভাবে যাচাই করবেন তা জানতে, ব্যবহারকারীর প্রতিক্রিয়া যাচাই করা দেখুন।