SafetyNet reCAPTCHA API

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

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

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

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

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

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

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

reCAPTCHA কী পেয়ার রেজিস্টার করুন

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

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

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

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

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

SafetyNet API ডিপেন্ডেন্সি যোগ করুন

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

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

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

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

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

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

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

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

Kotlin

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 সমাধান করেছেন। আপনাকে এখনও আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহারকারীর রেসপন্স টোকেন যাচাই করতে হবে।

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