SafetyNet reCAPTCHA API

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

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

এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে আপনার অ্যাপে SafetyNet থেকে reCAPTCHA API একীভূত করতে হয়।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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() পদ্ধতিটি চালায়, তখন ব্যবহারকারী সফলভাবে ক্যাপচা চ্যালেঞ্জটি সম্পন্ন করেছেন। যাইহোক, এই পদ্ধতিটি শুধুমাত্র নির্দেশ করে যে ব্যবহারকারী সঠিকভাবে ক্যাপচা সমাধান করেছেন। আপনাকে এখনও আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহারকারীর প্রতিক্রিয়া টোকেন যাচাই করতে হবে।

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