আপনার অ্যান্ড্রয়েড অ্যাপে Google সাইন-ইন সংহত করতে, Google সাইন-ইন কনফিগার করুন এবং আপনার অ্যাপের লেআউটে একটি বোতাম যোগ করুন যা সাইন-ইন প্রবাহ শুরু করে।
আপনি শুরু করার আগে
একটি Google API কনসোল প্রকল্প কনফিগার করুন এবং আপনার Android স্টুডিও প্রকল্প সেট আপ করুন ।
Google সাইন-ইন এবং GoogleSignInClient অবজেক্ট কনফিগার করুন
আপনার সাইন-ইন কার্যকলাপের
onCreate
পদ্ধতিতে, আপনার অ্যাপের জন্য প্রয়োজনীয় ব্যবহারকারীর ডেটার অনুরোধ করতে Google সাইন-ইন কনফিগার করুন। উদাহরণস্বরূপ, ব্যবহারকারীদের আইডি এবং মৌলিক প্রোফাইল তথ্যের জন্য অনুরোধ করতে Google সাইন-ইন কনফিগার করতে,DEFAULT_SIGN_IN
প্যারামিটার সহ একটিGoogleSignInOptions
অবজেক্ট তৈরি করুন৷ ব্যবহারকারীদের ইমেল ঠিকানাগুলিও অনুরোধ করতে,GoogleSignInOptions
অবজেক্টটিrequestEmail
বিকল্পের সাথে তৈরি করুন৷// Configure sign-in to request the user's ID, email address, and basic // profile. ID and basic profile are included in DEFAULT_SIGN_IN. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .build();
আপনি যদি Google API অ্যাক্সেস করার জন্য অতিরিক্ত স্কোপের অনুরোধ করতে চান, সেগুলিকে
requestScopes
দিয়ে নির্দিষ্ট করুন। সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতার জন্য, সাইন-ইন করার সময়, শুধুমাত্র সেই স্কোপের জন্য অনুরোধ করুন যা আপনার অ্যাপটিকে ন্যূনতমভাবে কাজ করার জন্য প্রয়োজনীয়। আপনার প্রয়োজন হলেই যেকোন অতিরিক্ত স্কোপের অনুরোধ করুন, যাতে আপনার ব্যবহারকারীরা তাদের সম্পাদিত কোনো অ্যাকশনের প্রেক্ষাপটে সম্মতি স্ক্রীন দেখতে পান। অতিরিক্ত সুযোগের অনুরোধ দেখুন।তারপর, আপনার সাইন-ইন কার্যকলাপের
onCreate
পদ্ধতিতে, আপনার নির্দিষ্ট করা বিকল্পগুলির সাথে একটিGoogleSignInClient
অবজেক্ট তৈরি করুন৷// Build a GoogleSignInClient with the options specified by gso. mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
একটি বিদ্যমান সাইন-ইন ব্যবহারকারীর জন্য চেক করুন
আপনার অ্যাক্টিভিটির onStart
পদ্ধতিতে, একজন ব্যবহারকারী ইতিমধ্যেই Google-এর মাধ্যমে আপনার অ্যাপে সাইন ইন করেছেন কিনা তা পরীক্ষা করুন।
// Check for existing Google Sign In account, if the user is already signed in // the GoogleSignInAccount will be non-null. GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this); updateUI(account);
যদি GoogleSignIn.getLastSignedInAccount
একটি GoogleSignInAccount
অবজেক্ট ফেরত দেয় ( null
এর পরিবর্তে), ব্যবহারকারী ইতিমধ্যেই Google এর সাথে আপনার অ্যাপে সাইন ইন করেছেন৷ সেই অনুযায়ী আপনার UI আপডেট করুন—অর্থাৎ, সাইন-ইন বোতাম লুকান, আপনার প্রধান কার্যকলাপ চালু করুন বা আপনার অ্যাপের জন্য উপযুক্ত যাই হোক না কেন।
যদি GoogleSignIn.getLastSignedInAccount
null
রিটার্ন করে, ব্যবহারকারী এখনও Google এর সাথে আপনার অ্যাপে সাইন ইন করেননি। Google সাইন-ইন বোতামটি প্রদর্শন করতে আপনার UI আপডেট করুন৷
আপনার অ্যাপে Google সাইন-ইন বোতাম যোগ করুন
আপনার অ্যাপ্লিকেশনের লেআউটে
SignInButton
যোগ করুন:<com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" />
ঐচ্ছিক : আপনি যদি আপনার নিজের সাইন-ইন বোতাম সম্পদ প্রদানের পরিবর্তে ডিফল্ট সাইন-ইন বোতাম গ্রাফিক ব্যবহার করেন, তাহলে আপনি
setSize
পদ্ধতিতে বোতামের আকার কাস্টমাইজ করতে পারেন।// Set the dimensions of the sign-in button. SignInButton signInButton = findViewById(R.id.sign_in_button); signInButton.setSize(SignInButton.SIZE_STANDARD);
Android কার্যকলাপে (উদাহরণস্বরূপ,
onCreate
পদ্ধতিতে), ক্লিক করার সময় ব্যবহারকারীকে সাইন ইন করতে আপনার বোতামেরOnClickListener
নিবন্ধন করুন:findViewById(R.id.sign_in_button).setOnClickListener(this);
সাইন-ইন প্রবাহ শুরু করুন
কার্যকলাপের
onClick
পদ্ধতিতে,getSignInIntent
পদ্ধতিতে একটি সাইন-ইন উদ্দেশ্য তৈরি করে এবংstartActivityForResult
দিয়ে অভিপ্রায় শুরু করে সাইন-ইন বোতামের ট্যাপগুলি পরিচালনা করুন।@Override public void onClick(View v) { switch (v.getId()) { case R.id.sign_in_button: signIn(); break; // ... } }
private void signIn() { Intent signInIntent = mGoogleSignInClient.getSignInIntent(); startActivityForResult(signInIntent, RC_SIGN_IN); }
অভিপ্রায় শুরু করা ব্যবহারকারীকে সাইন ইন করার জন্য একটি Google অ্যাকাউন্ট নির্বাচন করতে অনুরোধ করে৷ আপনি
profile
,email
এবংopenid
এর বাইরে স্কোপের অনুরোধ করলে, ব্যবহারকারীকে অনুরোধ করা সংস্থানগুলিতে অ্যাক্সেস দেওয়ার জন্যও অনুরোধ করা হয়।ব্যবহারকারী সাইন ইন করার পরে, আপনি কার্যকলাপের
onActivityResult
পদ্ধতিতে ব্যবহারকারীর জন্য একটিGoogleSignInAccount
অবজেক্ট পেতে পারেন।@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { // The Task returned from this call is always completed, no need to attach // a listener. Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); handleSignInResult(task); } }
GoogleSignInAccount
অবজেক্টে সাইন-ইন করা ব্যবহারকারী সম্পর্কে তথ্য থাকে, যেমন ব্যবহারকারীর নাম।private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); // Signed in successfully, show authenticated UI. updateUI(account); } catch (ApiException e) { // The ApiException status code indicates the detailed failure reason. // Please refer to the GoogleSignInStatusCodes class reference for more information. Log.w(TAG, "signInResult:failed code=" + e.getStatusCode()); updateUI(null); } }
এছাড়াও আপনি
getEmail
সাথে ব্যবহারকারীর ইমেল ঠিকানা,getId
এর সাথে ব্যবহারকারীর Google ID (ক্লায়েন্ট-সাইড ব্যবহারের জন্য) এবংgetIdToken
এর সাথে ব্যবহারকারীর জন্য একটি আইডি টোকেন পেতে পারেন। আপনি যদি বর্তমানে সাইন-ইন করা ব্যবহারকারীকে একটি ব্যাকএন্ড সার্ভারে পাস করতে চান, তাহলে আপনার ব্যাকএন্ড সার্ভারে আইডি টোকেন পাঠান এবং সার্ভারে টোকেনটি যাচাই করুন।