Java কুইকস্টার্ট

Java কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করুন যা People API-তে অনুরোধ করে।

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

এই কুইকস্টার্ট যাচাইকরণ ও অনুমোদনের ফ্লোয়ের কিছু বিবরণ ম্যানেজ করতে Google Workspace-এর সাজেস্ট করা API ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।

উদ্দেশ্য

  • আপনার এনভায়রনমেন্ট সেট-আপ করুন।
  • স্যাম্পেল সেট-আপ করুন।
  • নমুনাটি চালান।

পূর্বশর্ত

  • API অ্যাক্সেস চালু করা Google Workspace ডোমেন।
  • অ্যাডমিনিস্ট্রেটরের বিশেষ সুবিধা সহ সেই ডোমেনে একটি Google অ্যাকাউন্ট।

আপনার পরিবেশ সেট-আপ করা

এই কুইকস্টার্ট সম্পূর্ণ করতে, আপনার এনভায়র্নমেন্ট সেট-আপ করুন।

API চালু করুন

Google API ব্যবহার করার আগে, আপনাকে Google Cloud প্রোজেক্টে সেগুলি চালু করতে হবে। আপনি একটি Google Cloud প্রোজেক্টে এক বা একাধিক API চালু করতে পারবেন।

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

  1. Google API Console-এ, 'মেনু > Google Auth প্ল্যাটফর্ম > ব্র্যান্ডিং' বিকল্পে যান।

    ব্র্যান্ডিংয়ে যান

  2. আপনি যদি আগে থেকেই Google Auth প্ল্যাটফর্ম কনফিগার করে থাকেন, তাহলে ব্র্যান্ডিং, দর্শক এবং ডেটা অ্যাক্সেস বিকল্পে গিয়ে নিম্নলিখিত OAuth-এর সম্মতি সংক্রান্ত স্ক্রিন সেটিংস কনফিগার করতে পারবেন। আপনি যদি এমন কোনও মেসেজ দেখতে পান যাতে লেখা আছে Google Auth প্ল্যাটফর্ম এখনও কনফিগার করা হয়নি, তাহলে শুরু করুন বিকল্পে ক্লিক করুন:
    1. অ্যাপের তথ্য বিকল্পের অধীনে, অ্যাপের নাম বিকল্পে, অ্যাপের জন্য একটি নাম লিখুন।
    2. ব্যবহারকারী সহায়তা ইমেল-এ, একটি সহায়তা ইমেল আইডি বেছে নিন যেখানে ব্যবহারকারীরা তাদের সম্মতি সম্পর্কে প্রশ্ন থাকলে আপনার সাথে যোগাযোগ করতে পারবেন।
    3. পরবর্তী বিকল্পে ক্লিক করুন।
    4. দর্শক বিকল্পের মধ্যে, ইন্টার্নাল বিকল্প বেছে নিন।
    5. পরবর্তী বিকল্পে ক্লিক করুন।
    6. যোগাযোগের তথ্য বিকল্পের মধ্যে, এমন একটি ইমেল আইডি লিখুন যেখানে আপনার প্রোজেক্টে কোনও পরিবর্তন হলে আপনাকে জানানো যাবে।
    7. পরবর্তী বিকল্পে ক্লিক করুন।
    8. শেষ করুন বিকল্পের মধ্যে, Google API পরিষেবা সংক্রান্ত ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং আপনি সম্মত হলে, আমি Google API পরিষেবা সংক্রান্ত ব্যবহারকারীর ডেটা নীতিতে সম্মতি জানাচ্ছি বিকল্প বেছে নিন।
    9. চালিয়ে যান বিকল্পে ক্লিক করুন।
    10. তৈরি করুন বিকল্পে ক্লিক করুন।
  3. আপাতত, আপনি স্কোপ যোগ করা এড়িয়ে যেতে পারেন। ভবিষ্যতে, আপনার Google Workspace সংস্থার বাইরে ব্যবহার করার জন্য কোনও অ্যাপ তৈরি করলে, আপনাকে অবশ্যই ব্যবহারকারীর ধরন পরিবর্তন করে এক্সটার্নাল করতে হবে। তারপরে আপনার অ্যাপের প্রয়োজনীয় অনুমোদনের স্কোপ যোগ করুন। আরও জানতে, সম্পূর্ণ OAuth সম্মতি কনফিগার করুন গাইড দেখুন।

ডেস্কটপ অ্যাপ্লিকেশনের জন্য ক্রেডেনশিয়াল অনুমোদন করা

আপনার অ্যাপে ব্যবহারকারীর ডেটা অ্যাক্সেস করতে এবং এন্ড ইউজারকে যাচাই করতে, আপনাকে এক বা একাধিক OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করতে হবে। Google-এর OAuth সার্ভারে একটি অ্যাপকে শনাক্ত করতে ক্লায়েন্ট আইডি ব্যবহার করা হয়। আপনার অ্যাপ একাধিক প্ল্যাটফর্মে চললে, আপনাকে প্রতিটি প্ল্যাটফর্মের জন্য আলাদা ক্লায়েন্ট আইডি তৈরি করতে হবে।
  1. Google Cloud Console-এ, 'মেনু > Google Auth প্ল্যাটফর্ম > ক্লায়েন্ট' বিকল্পে যান।

    ক্লায়েন্টে যান

  2. ক্লায়েন্ট তৈরি করুন বিকল্পে ক্লিক করুন।
  3. অ্যাপ্লিকেশনের ধরন > ডেস্কটপ অ্যাপ বিকল্পে ক্লিক করুন।
  4. নাম ফিল্ডে, ক্রেডেনশিয়ালের একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google Cloud Console-এ দেখানো হয়।
  5. ঐচ্ছিক: আপনার অ্যাপ যদি এমন একটি AI এজেন্ট হয় যা ব্যবহারকারীদের হয়ে অ্যাকশন নেয়, তাহলে AI-পরিচালিত এজেন্টের জন্য এই ক্লায়েন্ট ব্যবহার করুন বিকল্পটি বেছে নিন। আপনার অ্যাপ যদি AI এজেন্ট ওয়ার্কফ্লো এবং স্ট্যান্ডার্ড ব্যবহারকারী ফিচার, দুটির সাথেই কাজ করে, তাহলে প্রতিটির জন্য আলাদা OAuth ক্লায়েন্ট তৈরি করুন। ক্লায়েন্ট তৈরি করার পরে আপনি এই সেটিং পরিবর্তন করতে পারবেন না।
  6. তৈরি করুন বিকল্পে ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়াল "OAuth 2.0 ক্লায়েন্ট আইডি" বিকল্পের অধীনে দেখা যাবে।

  7. ডাউনলোড করা JSON ফাইলটি credentials.json হিসেবে সেভ করুন এবং ফাইলটি আপনার ওয়ার্কিং ডিরেক্টরিতে সরান।

ওয়ার্কস্পেস প্রস্তুত করুন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে, নতুন প্রোজেক্ট স্ট্রাকচার তৈরি করুন:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. src/main/resources/ ডিরেক্টরিতে, credentials.json ফাইলটি কপি করুন যা আপনি আগে ডাউনলোড করেছেন।

  3. ডিফল্ট build.gradle ফাইলটি খুলুন এবং এর কন্টেন্ট নিম্নলিখিত কোড দিয়ে পরিবর্তন করুন:

    people/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'PeopleQuickstart'
    sourceCompatibility = 11
    targetCompatibility = 11
    
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:2.0.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
        implementation 'com.google.apis:google-api-services-people:v1-rev20220531-2.0.0'
    }

স্যাম্পেল সেট-আপ করা

  1. src/main/java/ ডিরেক্টরিতে, এমন একটি নাম সহ একটি নতুন জাভা ফাইল তৈরি করুন যা আপনার build.gradle ফাইলের mainClassName ভ্যালুর সাথে ম্যাচ করে।

  2. আপনার নতুন Java ফাইলে নিম্নলিখিত কোড যোগ করুন:

    people/quickstart/src/main/java/PeopleQuickstart.java
    import com.google.api.client.auth.oauth2.Credential;
    import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
    import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.javanet.NetHttpTransport;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.people.v1.PeopleService;
    import com.google.api.services.people.v1.PeopleServiceScopes;
    import com.google.api.services.people.v1.model.ListConnectionsResponse;
    import com.google.api.services.people.v1.model.Name;
    import com.google.api.services.people.v1.model.Person;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Arrays;
    import java.util.List;
    
    public class PeopleQuickstart {
      private static final String APPLICATION_NAME = "Google People API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      private static final String TOKENS_DIRECTORY_PATH = "tokens";
    
      /**
       * Global instance of the scopes required by this quickstart.
       * If modifying these scopes, delete your previously saved tokens/ folder.
       */
      private static final List<String> SCOPES = Arrays.asList(PeopleServiceScopes.CONTACTS_READONLY);
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
    
      /**
       * Creates an authorized Credential object.
       *
       * @param HTTP_TRANSPORT The network HTTP Transport.
       * @return An authorized Credential object.
       * @throws IOException If the credentials.json file cannot be found.
       */
      private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = PeopleQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
        if (in == null) {
          throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
        }
        GoogleClientSecrets clientSecrets =
            GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
    
        // Build flow and trigger user authorization request.
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
            .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
            .setAccessType("offline")
            .build();
        LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
        return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
      }
    
      public static void main(String... args) throws IOException, GeneralSecurityException {
        // Build a new authorized API client service.
        final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
        PeopleService service =
            new PeopleService.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // Request 10 connections.
        ListConnectionsResponse response = service.people().connections()
            .list("people/me")
            .setPageSize(10)
            .setPersonFields("names,emailAddresses")
            .execute();
    
        // Print display name of connections if available.
        List<Person> connections = response.getConnections();
        if (connections != null && connections.size() > 0) {
          for (Person person : connections) {
            List<Name> names = person.getNames();
            if (names != null && names.size() > 0) {
              System.out.println("Name: " + person.getNames().get(0)
                  .getDisplayName());
            } else {
              System.out.println("No names available for connection.");
            }
          }
        } else {
          System.out.println("No connections found.");
        }
      }
    }

স্যাম্পেল রান করুন

  1. স্যাম্পেল রান করান:

    gradle run
    
  1. প্রথমবার স্যাম্পেল চালানোর সময়, এটি আপনাকে অ্যাক্সেস অনুমোদন করার জন্য প্রম্পট করে:
    1. আপনি আগে থেকে নিজের Google অ্যাকাউন্টে সাইন-ইন করে না থাকলে, প্রম্পট করা হলে সাইন-ইন করুন। আপনি একাধিক অ্যাকাউন্টে সাইন-ইন করে থাকলে, অনুমোদনের জন্য একটি অ্যাকাউন্ট বেছে নিন।
    2. স্বীকার করুন বিকল্পে ক্লিক করুন।

    আপনার Java অ্যাপ্লিকেশন রান করে এবং People API কল করে।

    অনুমোদনের তথ্য ফাইল সিস্টেমে স্টোর করা হয়, তাই পরের বার আপনি স্যাম্পেল কোড রান করলে, আপনাকে অনুমোদনের জন্য প্রম্পট করা হয় না।

পরবর্তী ধাপ