Java क्विकस्टार्ट

क्विकस्टार्ट में, Google Workspace API को कॉल करने वाले ऐप्लिकेशन को सेट अप और चलाने का तरीका बताया गया है.

Google Workspace के क्विकस्टार्ट, पुष्टि करने और अनुमति देने की प्रोसेस की कुछ जानकारी को मैनेज करने के लिए, एपीआई क्लाइंट लाइब्रेरी का इस्तेमाल करते हैं. हमारा सुझाव है कि आप अपने ऐप्लिकेशन के लिए क्लाइंट लाइब्रेरी का इस्तेमाल करें. इस क्विकस्टार्ट में, पुष्टि करने के लिए आसान तरीके का इस्तेमाल किया गया है. यह तरीका, टेस्टिंग एनवायरमेंट के लिए सही है. हमारा सुझाव है कि प्रोडक्शन एनवायरमेंट के लिए, अपने ऐप्लिकेशन के लिए सही ऐक्सेस क्रेडेंशियल चुनने से पहले, पुष्टि और अनुमति के बारे में जानें.

Google Chat API को अनुरोध करने वाला Java कमांड-लाइन ऐप्लिकेशन बनाएं.

मकसद

  • अपना एनवायरमेंट सेट अप करें.
  • सैंपल सेट अप करें.
  • सैंपल चलाएं.

ज़रूरी शर्तें

  • Business या Enterprise वर्शन वाला Google Workspace खाता, जिसमें Google Chat का ऐक्सेस हो.

अपना एनवायरमेंट सेट अप करने का तरीका

यह शुरुआती लेख पूरा करने के लिए, अपना एनवायरमेंट सेट अप करें.

एपीआई चालू करना

Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा. किसी एक Google Cloud प्रोजेक्ट में, एक या उससे ज़्यादा एपीआई चालू किए जा सकते हैं.

अगर इस शुरुआती लेख को पूरा करने के लिए, किसी नए Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करें. अगर आपने अपने Cloud प्रोजेक्ट के लिए यह चरण पहले ही पूरा कर लिया है, तो अगले सेक्शन पर जाएं.

  1. Google Cloud console में, मेन्यू > > ब्रैंडिंग पर जाएं.

    ब्रैंडिंग पर जाएं

  2. अगर आपने पहले से ही को कॉन्फ़िगर कर लिया है, तो ब्रैंडिंग, ऑडियंस, और डेटा ऐक्सेस में जाकर, OAuth सहमति स्क्रीन की ये सेटिंग कॉन्फ़िगर की जा सकती हैं. अगर आपको अभी तक कॉन्फ़िगर नहीं किया गया मैसेज दिखता है, तो शुरू करें पर क्लिक करें:
    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 में, मेन्यू > > क्लाइंट पर जाएं.

    क्लाइंट पर जाएं

  2. क्लाइंट बनाएं पर क्लिक करें.
  3. ऐप्लिकेशन का टाइप > डेस्कटॉप ऐप्लिकेशन पर क्लिक करें.
  4. नाम फ़ील्ड में, क्रेडेंशियल के लिए कोई नाम टाइप करें. यह नाम सिर्फ़ Google Cloud Console में दिखता है.
  5. बनाएं पर क्लिक करें.

    नया क्रेडेंशियल, "OAuth 2.0 क्लाइंट आईडी" में दिखता है.

  6. डाउनलोड की गई JSON फ़ाइल को credentials.json के तौर पर सेव करें और फ़ाइल को अपनी वर्किंग डायरेक्ट्री में ले जाएं.

Google Chat ऐप्लिकेशन को कॉन्फ़िगर करना

Google Chat API को कॉल करने के लिए, आपको Google Chat ऐप्लिकेशन को कॉन्फ़िगर करना होगा. डेटा लिखने के किसी भी अनुरोध के लिए, Google Chat, यूज़र इंटरफ़ेस (यूआई) में Google Chat ऐप्लिकेशन को एट्रिब्यूट करता है. इसके लिए, यह नीचे दी गई जानकारी का इस्तेमाल करता है.

  1. Google Cloud Console में, Chat API के कॉन्फ़िगरेशन पेज पर जाएं:

    Chat API के कॉन्फ़िगरेशन पेज पर जाना

  2. ऐप्लिकेशन की जानकारी में जाकर, यह जानकारी डालें:

    1. ऐप्लिकेशन का नाम फ़ील्ड में, Chat API quickstart app डालें.
    2. अवतार का यूआरएल फ़ील्ड में, https://developers.google.com/chat/images/quickstart-app-avatar.png डालें.
    3. ब्यौरा फ़ील्ड में, Quickstart for calling the Chat API डालें.
  3. Chat ऐप्लिकेशन के लिए इंटरैक्टिव सुविधाएं बंद करने के लिए, इंटरैक्टिव सुविधाएं में जाकर, इंटरैक्टिव सुविधाएं चालू करें पर क्लिक करें. इसके बाद, टॉगल को बंद की स्थिति पर स्विच करें.

  4. सेव करें पर क्लिक करें.

फ़ाइल फ़ोल्डर तैयार करना

  1. अपनी वर्किंग डायरेक्ट्री में, प्रोजेक्ट का नया स्ट्रक्चर बनाएं:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. src/main/resources/ डायरेक्ट्री में, credentials.json फ़ाइल को कॉपी करें, जिसे आपने पहले डाउनलोड किया था.

  3. डिफ़ॉल्ट build.gradle फ़ाइल खोलें और उसके कॉन्टेंट को यहां दिए गए कोड से बदलें:

    chat/quickstart/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/ डायरेक्ट्री में, एक नई Java फ़ाइल बनाएं. इसका नाम, build.gradle फ़ाइल में मौजूद mainClassName वैल्यू से मेल खाना चाहिए.

  2. अपनी नई Java फ़ाइल में यह कोड शामिल करें:

    chat/quickstart/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. स्वीकार करें पर क्लिक करें.

    आपका Java ऐप्लिकेशन Google Chat API को चलाता है और उसे कॉल करता है.

    अनुमति की जानकारी, फ़ाइल सिस्टम में सेव की जाती है. इसलिए, अगली बार सैंपल कोड चलाने पर, आपसे अनुमति नहीं मांगी जाती.

अगले चरण