নতুন Google সাইন-ইন API

Google আইডেন্টিটি সার্ভিসেস (GIS) হল API-এর একটি নতুন সেট যা ব্যবহারকারীদের সহজে এবং নিরাপদ সাইন-ইন এবং সাইন-আপ প্রদান করে, যা বিকাশকারীদের জন্য সহজে কার্যকর করা প্যাকেজে। এই নথিতে একটি নতুন Google সাইন-ইন API (GIS-এর অংশ) বিশদ বিবরণ রয়েছে যেটি সাইন-ইন বা সাইন-আপ প্রবাহ শুরু করতে ব্যবহার করা যেতে পারে যখন কোনো ব্যবহারকারী "Google-এর সাথে সাইন-ইন" বোতামে ট্যাপ করে। সাইন ইন প্রবাহের জন্য বিদ্যমান Google সাইন-ইন API-এর পরিবর্তে এই API ব্যবহার করা যেতে পারে।

আপনার এই APIটি শুধুমাত্র তখনই ব্যবহার করা উচিত যখন ব্যবহারকারী স্পষ্টভাবে Google এর সাথে সাইন ইন করার অভিপ্রায় দেখান৷ উদাহরণস্বরূপ, যখন তারা আপনার অ্যাপে একটি "Google দিয়ে সাইন ইন করুন" বোতামে ক্লিক করুন তখন এই APIটি ব্যবহার করুন৷

ব্যবহারকারীকে অ্যাপ লঞ্চে সাইন-ইন করতে বা শপিং কার্টে একটি আইটেম যোগ করার মতো অন্য ট্রিগারের প্রতিক্রিয়া জানাতে আপনার এই API ব্যবহার করা উচিত নয়। এই ব্যবহারের ক্ষেত্রে, এক ট্যাপ সাইন-ইন এবং সাইন-আপ ব্যবহার করুন।

আপনি যখন নতুন API এর সাথে Google সাইন-ইন প্রবাহ শুরু করেন, তখন এটি এই UI প্রদর্শন করবে:

Google সাইন-ইন

তুমি শুরু করার আগে

একটি Google API কনসোল প্রকল্প কনফিগার করুন এবং আপনার Android স্টুডিও প্রকল্প সেট আপ করুন

একটি সাইন ইন অনুরোধ করুন

Identity API ব্যবহার করে একটি Google সাইন-ইন প্রবাহ চালু করতে একটি GetSignInRequest অবজেক্ট তৈরি করুন। তারপরে, একটি SignInClient অবজেক্ট কলে getSignInIntent । এই কলটি অ্যাসিঙ্ক এবং সফল হলে এটি ডায়ালগ চালু করার জন্য একটি PendingIntent প্রদান করবে৷

    private static final int REQUEST_CODE_GOOGLE_SIGN_IN = 1; /* unique request id */

    private void signIn() {
        GetSignInIntentRequest request =
            GetSignInIntentRequest.builder()
                .setServerClientId(getString(R.string.server_client_id))
                .build();

        Identity.getSignInClient(activity)
            .getSignInIntent(request)
            .addOnSuccessListener(
                    result -> {
                        try {
                            startIntentSenderForResult(
                                    result.getIntentSender(),
                                    REQUEST_CODE_GOOGLE_SIGN_IN,
                                    /* fillInIntent= */ null,
                                    /* flagsMask= */ 0,
                                    /* flagsValue= */ 0,
                                    /* extraFlags= */ 0,
                                    /* options= */ null);
                        } catch (IntentSender.SendIntentException e) {
                            Log.e(TAG, "Google Sign-in failed");
                        }
                    })
            .addOnFailureListener(
                    e -> {
                        Log.e(TAG, "Google Sign-in failed", e);
                    });
    }

সাইন ইন ফলাফল হ্যান্ডেল

onActivityResult এ একটি SignInCredential পুনরুদ্ধার করুন। getSignInCredentialFromIntent থেকে ফিরে আসা SignInCredential অবজেক্টে একটি বৈধ লগইন সম্পর্কে তথ্য রয়েছে। ব্যবহারকারী কোনো কারণে লগ ইন করতে ব্যর্থ হলে, একটি ApiException নিক্ষেপ করা হয়।

    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == Activity.RESULT_OK) {
            if (requestCode == REQUEST_CODE_GOOGLE_SIGN_IN) {
                try {
                    SignInCredential credential = Identity.getSignInClient(this).getSignInCredentialFromIntent(data);
                    // Signed in successfully - show authenticated UI
                    updateUI(credential);
                } catch (ApiException e) {
                    // The ApiException status code indicates the detailed failure reason.
                }
            }
        }
    }
private ActivityResultLauncher<IntentSenderRequest> loginResultHandler = registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
    // handle intent result here
});

একটি সফল সাইন ইনের ফলাফল সর্বদা ব্যবহারকারীদের পুরো নাম, ইমেল এবং প্রোফাইল ছবি url প্রদান করে৷ আপনার যদি অতিরিক্ত তথ্যের প্রয়োজন হয় তবে আপনি ব্যবহারকারীদের সম্পূর্ণ প্রোফাইল তথ্য প্রবাহে নির্দেশ করতে পারেন।