Google ব্যবহারকারীর ডেটা অ্যাক্সেস অনুমোদন করুন

প্রমাণীকরণ নিশ্চিত করে যে কেউ কে, এবং সাধারণত ব্যবহারকারী সাইন-আপ বা সাইন-ইন হিসাবে উল্লেখ করা হয়। অনুমোদন হল ডেটা বা সংস্থানগুলিতে অ্যাক্সেস প্রদান বা প্রত্যাখ্যান করার প্রক্রিয়া। উদাহরণস্বরূপ, আপনার অ্যাপ ব্যবহারকারীর Google ড্রাইভ অ্যাক্সেস করার জন্য আপনার ব্যবহারকারীর সম্মতির অনুরোধ করে।

প্রমাণীকরণ এবং অনুমোদন কলগুলি অ্যাপের প্রয়োজনের উপর ভিত্তি করে দুটি পৃথক এবং স্বতন্ত্র প্রবাহ হওয়া উচিত।

যদি আপনার অ্যাপে এমন বৈশিষ্ট্য থাকে যা Google API ডেটা ব্যবহার করতে পারে, কিন্তু আপনার অ্যাপের মূল বৈশিষ্ট্যগুলির অংশ হিসাবে প্রয়োজন হয় না, তাহলে আপনার অ্যাপটিকে এমনভাবে ডিজাইন করা উচিত যাতে API ডেটা অ্যাক্সেস করা যায় না। উদাহরণস্বরূপ, ব্যবহারকারী যখন ড্রাইভ অ্যাক্সেস মঞ্জুর না করে তখন আপনি সম্প্রতি সংরক্ষিত ফাইলগুলির একটি তালিকা লুকাতে পারেন৷

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

প্রমাণীকরণ থেকে অনুমোদন আলাদা করে, আপনি অপ্রতিরোধ্য নতুন ব্যবহারকারীদের এড়াতে পারেন, বা ব্যবহারকারীদের কেন নির্দিষ্ট অনুমতি চাওয়া হচ্ছে তা নিয়ে বিভ্রান্ত করতে পারেন।

প্রমাণীকরণের জন্য, আমরা ক্রেডেনশিয়াল ম্যানেজার API ব্যবহার করার পরামর্শ দিই। Google দ্বারা সংরক্ষিত ব্যবহারকারীর ডেটাতে অ্যাক্সেস প্রয়োজন এমন ক্রিয়াগুলিকে অনুমোদনের জন্য, আমরা AuthorizationClient ব্যবহার করার সুপারিশ করি৷

আপনার সেট আপ প্রকল্প

  1. আপনার প্রকল্প খুলুন , অথবা আপনার কাছে ইতিমধ্যে একটি না থাকলে একটি প্রকল্প তৈরি করুন৷
  2. উপর , নিশ্চিত করুন যে সমস্ত তথ্য সম্পূর্ণ এবং সঠিক।
    1. নিশ্চিত করুন যে আপনার অ্যাপে একটি সঠিক অ্যাপের নাম, অ্যাপ লোগো এবং অ্যাপ হোমপেজ অ্যাসাইন করা আছে। এই মানগুলি সাইন আপে Google-এর সম্মতি দিয়ে সাইন ইন স্ক্রিনে এবং থার্ড-পার্টি অ্যাপ ও পরিষেবার স্ক্রিনে ব্যবহারকারীদের কাছে উপস্থাপন করা হবে।
    2. নিশ্চিত করুন যে আপনি আপনার অ্যাপের গোপনীয়তা নীতি এবং পরিষেবার শর্তাবলীর URLগুলি নির্দিষ্ট করেছেন৷
  3. মধ্যে , আপনার অ্যাপের জন্য একটি অ্যান্ড্রয়েড ক্লায়েন্ট আইডি তৈরি করুন যদি আপনার কাছে ইতিমধ্যে একটি না থাকে। আপনাকে আপনার অ্যাপের প্যাকেজের নাম এবং SHA-1 স্বাক্ষর উল্লেখ করতে হবে।
    1. যান .
    2. ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
    3. অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রকার নির্বাচন করুন.
  4. মধ্যে , একটি নতুন "ওয়েব অ্যাপ্লিকেশন" ক্লায়েন্ট আইডি তৈরি করুন যদি আপনার ইতিমধ্যে না থাকে। আপনি আপাতত "অনুমোদিত জাভাস্ক্রিপ্ট অরিজিনস" এবং "অনুমোদিত রিডাইরেক্ট ইউআরআই" ক্ষেত্রগুলিকে উপেক্ষা করতে পারেন৷ এই ক্লায়েন্ট আইডিটি আপনার ব্যাকএন্ড সার্ভার সনাক্ত করতে ব্যবহার করা হবে যখন এটি Google এর প্রমাণীকরণ পরিষেবাগুলির সাথে যোগাযোগ করবে৷
    1. যান .
    2. ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
    3. ওয়েব অ্যাপ্লিকেশন টাইপ নির্বাচন করুন।

নির্ভরতা ঘোষণা করুন

আপনার মডিউলের build.gradle ফাইলে, Google আইডেন্টিটি সার্ভিসেস লাইব্রেরির সর্বশেষ সংস্করণ ব্যবহার করে নির্ভরতা ঘোষণা করুন।

dependencies {
  // ... other dependencies

  implementation "com.google.android.gms:play-services-auth:<latest version>"
}

ব্যবহারকারীর ক্রিয়াকলাপের জন্য প্রয়োজনীয় অনুমতির অনুরোধ করুন

যখনই একজন ব্যবহারকারী এমন একটি কাজ করেন যার জন্য অতিরিক্ত সুযোগের প্রয়োজন হয়, তখন AuthorizationClient.authorize() কল করুন।

উদাহরণস্বরূপ, যদি একজন ব্যবহারকারী এমন একটি কাজ করেন যার জন্য তাদের ড্রাইভ অ্যাপ স্টোরেজ অ্যাক্সেসের প্রয়োজন হয়, তাহলে নিম্নলিখিতগুলি করুন:

List<Scopes> requestedScopes = Arrays.asList(DriveScopes.DRIVE_APPDATA);
AuthorizationRequest authorizationRequest = AuthorizationRequest.builder().setRequestedScopes(requestedScopes).build();
Identity.getAuthorizationClient(this)
        .authorize(authorizationRequest)
        .addOnSuccessListener(
            authorizationResult -> {
              if (authorizationResult.hasResolution()) {
                    // Access needs to be granted by the user
                PendingIntent pendingIntent = authorizationResult.getPendingIntent();
                try {
startIntentSenderForResult(pendingIntent.getIntentSender(),
REQUEST_AUTHORIZE, null, 0, 0, 0, null);
                } catch (IntentSender.SendIntentException e) {
                Log.e(TAG, "Couldn't start Authorization UI: " + e.getLocalizedMessage());
                }
              } else {
            // Access already granted, continue with user action
                saveToDriveAppFolder(authorizationResult);
              }
            })
        .addOnFailureListener(e -> Log.e(TAG, "Failed to authorize", e));

আপনার কার্যকলাপের onActivityResult কলব্যাকে, আপনি প্রয়োজনীয় অনুমতিগুলি সফলভাবে অর্জিত হয়েছে কিনা তা পরীক্ষা করতে পারেন, এবং যদি তাই হয়, ব্যবহারকারীর ক্রিয়া সম্পাদন করুন৷

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == MainActivity.REQUEST_AUTHORIZE) {
    AuthorizationResult authorizationResult = Identity.getAuthorizationClient(this).getAuthorizationResultFromIntent(data);
    saveToDriveAppFolder(authorizationResult);
  }
}

আপনি যদি সার্ভারের দিকে Google API গুলি অ্যাক্সেস করেন, তাহলে আপনি একটি অনুমোদন কোড পেতে getServerAuthCode() পদ্ধতিতে কল করতে পারেন যা আপনি একটি অ্যাক্সেস এবং রিফ্রেশ টোকেনের বিনিময়ের জন্য আপনার ব্যাকএন্ডে পাঠান।