সেরা ব্যবহারকারীর অভিজ্ঞতার জন্য, প্রাথমিকভাবে ব্যবহারকারীদের সাইন ইন করার সময় আপনার যতটা সম্ভব কম স্কোপ অনুরোধ করা উচিত। যদি আপনার অ্যাপের মূল কার্যকারিতা কোনও Google পরিষেবার সাথে সংযুক্ত না থাকে, তাহলে সাইন-ইন করার সময় প্রায়শই আপনার প্রয়োজন হয় GoogleSignInOptions.DEFAULT_SIGN_IN কনফিগারেশন।
যদি আপনার অ্যাপে এমন বৈশিষ্ট্য থাকে যা Google API ডেটা ব্যবহার করতে পারে, কিন্তু আপনার অ্যাপের মূল কার্যকারিতার অংশ হিসেবে এটির প্রয়োজন হয় না, তাহলে আপনার অ্যাপটি এমনভাবে ডিজাইন করা উচিত যাতে API ডেটা অ্যাক্সেসযোগ্য না হলে পরিস্থিতি সুন্দরভাবে পরিচালনা করা যায়। উদাহরণস্বরূপ, ব্যবহারকারী যখন ড্রাইভ অ্যাক্সেস না দেন তখন আপনি সম্প্রতি সংরক্ষিত ফাইলগুলির একটি তালিকা লুকিয়ে রাখতে পারেন।
ব্যবহারকারী যখন কোনও নির্দিষ্ট API-তে অ্যাক্সেসের প্রয়োজন হয় তখনই Google API-তে অ্যাক্সেসের জন্য আপনার অতিরিক্ত স্কোপগুলির অনুরোধ করা উচিত। উদাহরণস্বরূপ, আপনি কেবল তখনই ব্যবহারকারীর ড্রাইভ অ্যাক্সেসের অনুমতির অনুরোধ করতে পারেন যখন ব্যবহারকারী প্রথমবারের মতো "ড্রাইভে সংরক্ষণ করুন" বোতামটি ট্যাপ করেন।
এই কৌশলটি ব্যবহার করে, আপনি নতুন ব্যবহারকারীদের অতিরিক্ত চাপ এড়াতে পারবেন, অথবা ব্যবহারকারীদের কেন তাদের কাছ থেকে নির্দিষ্ট অনুমতি চাওয়া হচ্ছে তা নিয়ে বিভ্রান্তি এড়াতে পারবেন।
ব্যবহারকারীর ক্রিয়াকলাপ অনুসারে প্রয়োজনীয় অনুমতিগুলির অনুরোধ করুন
যখনই কোনও ব্যবহারকারী এমন কোনও কাজ করেন যার জন্য এমন একটি স্কোপের প্রয়োজন হয় যা সাইন-ইন করার সময় অনুরোধ করা হয় না, তখন ব্যবহারকারী ইতিমধ্যে প্রয়োজনীয় অনুমতিগুলি মঞ্জুর করেছেন কিনা তা পরীক্ষা করার জন্য GoogleSignIn.hasPermissions এ কল করুন। যদি না হয়, তাহলে ব্যবহারকারীর কাছ থেকে অতিরিক্ত প্রয়োজনীয় স্কোপের অনুরোধ করে এমন একটি কার্যকলাপ চালু করতে GoogleSignIn.requestPermissions এ কল করুন।
উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী এমন কোনও কাজ করেন যার জন্য তাদের ড্রাইভ অ্যাপ স্টোরেজে অ্যাক্সেসের প্রয়োজন হয়, তাহলে নিম্নলিখিতগুলি করুন:
if (!GoogleSignIn.hasPermissions(
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER)) {
GoogleSignIn.requestPermissions(
MyExampleActivity.this,
RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER);
} else {
saveToDriveAppFolder();
}
আপনার অ্যাক্টিভিটির onActivityResult কলব্যাকে, আপনি প্রয়োজনীয় অনুমতিগুলি সফলভাবে অর্জিত হয়েছে কিনা তা পরীক্ষা করতে পারেন, এবং যদি তাই হয়, তাহলে ব্যবহারকারীর পদক্ষেপটি সম্পাদন করুন।
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
saveToDriveAppFolder();
}
}
}
আপনি hasPermissions এ একটি GoogleSignInOptionsExtension পাস করতে পারেন এবং আরও সুবিধাজনকভাবে অনুমতিগুলির একটি সেট পরীক্ষা করতে এবং অর্জন করতে requestPermissions করতে পারেন।