নতুন 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 প্রদান করে৷ আপনার যদি অতিরিক্ত তথ্যের প্রয়োজন হয় তবে আপনি ব্যবহারকারীদের সম্পূর্ণ প্রোফাইল তথ্য প্রবাহে নির্দেশ করতে পারেন।