জাভা কুইকস্টার্ট

একটি জাভা কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করুন যা Google Chat API-তে অনুরোধ করে।

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

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

উদ্দেশ্য

  • তোমার পরিবেশ ঠিক করো।
  • নমুনা সেট আপ করুন।
  • নমুনাটি চালান।

পূর্বশর্ত

  • Google Chat অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ Google Workspace অ্যাকাউন্ট।

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

এই দ্রুত শুরুটি সম্পন্ন করতে, আপনার পরিবেশ সেট আপ করুন।

API সক্রিয় করুন

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

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

  1. গুগল ক্লাউড কনসোলে, মেনু > এ যানGoogle Auth platform > ব্র্যান্ডিং

    ব্র্যান্ডিং-এ যান

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

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

আপনার অ্যাপে ব্যবহারকারীদের প্রমাণীকরণ এবং ব্যবহারকারীর ডেটা অ্যাক্সেস করার জন্য, আপনাকে এক বা একাধিক OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করতে হবে। Google এর OAuth সার্ভারগুলিতে একটি একক অ্যাপ সনাক্ত করতে একটি ক্লায়েন্ট আইডি ব্যবহার করা হয়। যদি আপনার অ্যাপ একাধিক প্ল্যাটফর্মে চলে, তাহলে আপনাকে প্রতিটি প্ল্যাটফর্মের জন্য একটি পৃথক ক্লায়েন্ট আইডি তৈরি করতে হবে।
  1. গুগল ক্লাউড কনসোলে, মেনু > এ যানGoogle Auth platform > ক্লায়েন্ট

    ক্লায়েন্টদের তালিকায় যান

  2. ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
  3. অ্যাপ্লিকেশনের ধরণ > ডেস্কটপ অ্যাপ ক্লিক করুন।
  4. নাম ক্ষেত্রে, শংসাপত্রের জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google ক্লাউড কনসোলে দেখানো হবে।
  5. তৈরি করুন ক্লিক করুন।

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

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

Google Chat অ্যাপ কনফিগার করুন

Google Chat API কল করতে, আপনাকে একটি Google Chat অ্যাপ কনফিগার করতে হবে। যেকোনো লেখার অনুরোধের জন্য, Google Chat নিম্নলিখিত তথ্য ব্যবহার করে UI-তে Google Chat অ্যাপটিকে অ্যাট্রিবিউট করে।

  1. গুগল ক্লাউড কনসোলে, চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান:

    চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান

  2. অ্যাপ্লিকেশন তথ্য এর অধীনে, নিম্নলিখিত তথ্য লিখুন:

    1. অ্যাপের নাম ক্ষেত্রে, Chat API quickstart app লিখুন।
    2. Avatar URL ক্ষেত্রে, https://developers.google.com/chat/images/quickstart-app-avatar.png লিখুন।
    3. বর্ণনা ক্ষেত্রে, Quickstart for calling the Chat API লিখুন।
  3. ইন্টারেক্টিভ বৈশিষ্ট্যগুলির অধীনে, চ্যাট অ্যাপের জন্য ইন্টারেক্টিভ বৈশিষ্ট্যগুলি অক্ষম করতে ইন্টারেক্টিভ বৈশিষ্ট্যগুলি সক্ষম করুন টগল অফ পজিশনে ক্লিক করুন।

  4. সংরক্ষণ করুন ক্লিক করুন।

কর্মক্ষেত্র প্রস্তুত করুন

  1. আপনার কার্যকরী ডিরেক্টরিতে, একটি নতুন প্রকল্প কাঠামো তৈরি করুন:

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

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

    চ্যাট/কুইকস্টার্ট/বিল্ড.গ্র্যাডল
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ChatQuickstart'
    sourceCompatibility = 11
    targetCompatibility = 11
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.auth:google-auth-library-oauth2-http:1.23.0'
        implementation 'com.google.api-client:google-api-client:1.33.0'
        implementation 'com.google.api.grpc:proto-google-cloud-chat-v1:0.8.0'
        implementation 'com.google.api:gax:2.48.1'
        implementation 'com.google.cloud:google-cloud-chat:0.1.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
    }

নমুনা সেট আপ করুন

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

  2. আপনার নতুন জাভা ফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:

    চ্যাট/কুইকস্টার্ট/src/main/java/ChatQuickstart.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.json.JsonFactory;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.gax.core.FixedCredentialsProvider;
    import com.google.auth.Credentials;
    import com.google.auth.oauth2.AccessToken;
    import com.google.auth.oauth2.UserCredentials;
    import com.google.chat.v1.ChatServiceClient;
    import com.google.chat.v1.ChatServiceSettings;
    import com.google.chat.v1.ListSpacesRequest;
    import com.google.chat.v1.Space;
    import com.google.protobuf.util.JsonFormat;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Collections;
    import java.util.Date;
    import java.util.List;
    
    /* class to demonstrate use of Google Chat API spaces list API */
    public class ChatQuickstart {
      /** Directory to store authorization tokens for this application. */
      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 =
          Collections.singletonList("https://www.googleapis.com/auth/chat.spaces.readonly");
    
      /** Global instance of the JSON factory. */
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
    
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
    
      /**
       * Run the OAuth2 flow for local/installed app.
       *
       * @return An authorized Credential object.
       * @throws IOException If the credentials.json file cannot be found.
       */
      private static Credentials getCredentials() throws Exception {
        // Load client secrets.
        InputStream credentialsFileInputStream =
            ChatQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
        if (credentialsFileInputStream == null) {
          throw new FileNotFoundException("Credentials file resource not found.");
        }
        GoogleClientSecrets clientSecrets =
            GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(credentialsFileInputStream));
    
        // Set up authorization code flow.
        GoogleAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow.Builder(
                    GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, clientSecrets, SCOPES)
                // Set these two options to generate refresh token alongside access token.
                .setDataStoreFactory(new FileDataStoreFactory(new File(TOKENS_DIRECTORY_PATH)))
                .setAccessType("offline")
                .build();
    
        // Authorize.
        Credential credential =
            new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
    
        // Build and return an authorized Credential object
        AccessToken accessToken =
            new AccessToken(
                credential.getAccessToken(),
                new Date(
                    // put the actual expiry date of access token here
                    System.currentTimeMillis()));
        return UserCredentials.newBuilder()
            .setAccessToken(accessToken)
            .setRefreshToken(credential.getRefreshToken())
            .setClientId(clientSecrets.getInstalled().getClientId())
            .setClientSecret(clientSecrets.getInstalled().getClientSecret())
            .build();
      }
    
      public static void main(String... args) throws Exception {
        // Override default service settings to supply user credentials.
        Credentials credentials = getCredentials();
    
        // Create the ChatServiceSettings with the credentials
        ChatServiceSettings chatServiceSettings =
            ChatServiceSettings.newBuilder()
                .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
                .build();
    
        try (ChatServiceClient chatServiceClient = ChatServiceClient.create(chatServiceSettings)) {
          ListSpacesRequest request =
              ListSpacesRequest.newBuilder()
                  // Filter spaces by space type (SPACE or GROUP_CHAT or
                  // DIRECT_MESSAGE).
                  .setFilter("spaceType = \"SPACE\"")
                  .build();
    
          // Iterate over results and resolve additional pages automatically.
          for (Space response : chatServiceClient.listSpaces(request).iterateAll()) {
            System.out.println(JsonFormat.printer().print(response));
          }
        }
      }
    }

নমুনাটি চালান

  1. নমুনাটি চালান:

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

    আপনার জাভা অ্যাপ্লিকেশনটি গুগল চ্যাট এপিআই চালায় এবং কল করে।

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

পরবর্তী পদক্ষেপ