इस गाइड में बताया गया है कि Google Chat एपीआई आपको ऐक्सेस मिल सकता है. सबसे पहले, इसमें सेवा खाता बनाने का तरीका बताया गया है. इसके बाद, इसमें बताया गया है कि एक ऐसी स्क्रिप्ट लिखें जो Chat में पुष्टि करने के लिए सेवा खाते का इस्तेमाल करती हो एपीआई का इस्तेमाल करें और Chat स्पेस में मैसेज पोस्ट करें.
एसिंक्रोनस रूप से कॉल करते समय पुष्टि करने के लिए चैट ऐप्लिकेशन सेवा खातों का इस्तेमाल कर सकते हैं Google Chat API का इस्तेमाल करें, ताकि वे ये काम कर सकें:
- इनसे Google Chat को मैसेज भेजें
spaces.messages.create
यहां तक:- लंबे समय तक चलने वाले बैकग्राउंड जॉब के खत्म होने पर उपयोगकर्ताओं को सूचना दें.
- उपयोगकर्ताओं को सूचित करें कि सर्वर ऑफ़लाइन हो गया है.
- ग्राहक सहायता टीम से जुड़े किसी व्यक्ति को, ग्राहक के नए केस की जांच करने के लिए कहें.
- इससे पहले भेजे गए मैसेज अपडेट करें
spaces.messages.update
यहां तक:- जारी कार्रवाई की स्थिति बदलें.
- किसी टास्क को असाइन किए जाने की तारीख या उसे पूरा करने की तारीख अपडेट करें.
- इस सुविधा वाले स्पेस में उपयोगकर्ताओं की सूची बनाएं
spaces.members.list
से इसमें बदलें:- देखें कि स्पेस में कौन है.
- यह पुष्टि करने के लिए कि स्पेस में टीम के सभी सदस्य शामिल हैं.
सेवा खाते से पुष्टि होने के बाद, किसी कार्रवाई के बारे में डेटा पाने या कार्रवाई करने के लिए चैट स्पेस में, चैट ऐप्लिकेशन के लिए उस स्पेस में पैसे चुकाकर ली जाने वाली सदस्यता का होना ज़रूरी है. उदाहरण के लिए, अगर स्पेस के सदस्यों को सूची में शामिल करना है या स्पेस में मैसेज बनाना है, तो Chat ऐप्लिकेशन को वह स्पेस का सदस्य हो.
अगर Chat ऐप्लिकेशन को उपयोगकर्ता का डेटा ऐक्सेस करने या उसकी सेटिंग पर कोई कार्रवाई करने की ज़रूरत है की तरफ़ से, उपयोगकर्ता के तौर पर पुष्टि करें.
डोमेन एडमिन के तौर पर, आपके पास पूरे डोमेन के लोगों को अधिकार देना किसी ऐप्लिकेशन के सेवा खाते को आपके उपयोगकर्ताओं की डेटा के बिना हर उपयोगकर्ता के लिए सहमति देना ज़रूरी है. पूरे डोमेन के लोगों को डेटा का ऐक्सेस देने की सुविधा कॉन्फ़िगर करने के बाद, आप कर सकते हैं किसी उपयोगकर्ता खाते की पहचान चुराने के लिए, अपने सेवा खाते का इस्तेमाल करके एपीआई कॉल करें. हालांकि, सेवा खाते का इस्तेमाल इन कामों के लिए किया जाता है पुष्टि करने के लिए, पूरे डोमेन के लोगों को डेटा का ऐक्सेस दिया जाता है. इसलिए, यह किसी उपयोगकर्ता के नाम पर काम करता है उपयोगकर्ता ऑथेंटिकेशन माना जाता है. ऐसी कोई भी सुविधा जिसके लिए उपयोगकर्ता की ज़रूरत होती है पुष्टि करने के लिए, आप पूरे डोमेन के लोगों को डेटा का ऐक्सेस दे सकते हैं.
Chat ऐप्लिकेशन को पुष्टि करने की ज़रूरत कब पड़ती है, इस बारे में ज़्यादा जानने के लिए पुष्टि करने का कौनसा तरीका इस्तेमाल करना है, पुष्टि करने के ज़रूरी तरीके देखने की अनुमति दें.
ज़रूरी शर्तें
Java
- JDK 1.7 या उसके बाद का वर्शन
- Maven पैकेज मैनेजमेंट टूल
-
शुरू किया गया Maven प्रोजेक्ट. नया प्रोजेक्ट शुरू करने के लिए, अपने
कमांड-लाइन इंटरफ़ेस:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - Google Chat ऐप्लिकेशन, जिसमें इंटरैक्टिव सुविधाएं चालू हैं. बनाने के लिए इंटरैक्टिव चैट ऐप्लिकेशन के लिए एचटीटीपी सेवा का इस्तेमाल करें. इस क्विकस्टार्ट को पूरा करें.
- किसी स्पेस में Chat ऐप्लिकेशन जोड़ें. इसे जोड़ने के लिए चैट ऐप्लिकेशन, देखें Google Chat ऐप्लिकेशन के लिए इंटरैक्टिव सुविधाओं की जांच करें.
Python
- Python 3.6 या इससे नया वर्शन
- पीआईपी पैकेज मैनेजमेंट टूल
- Google Chat ऐप्लिकेशन, जिसमें इंटरैक्टिव सुविधाएं चालू हैं. बनाने के लिए इंटरैक्टिव चैट ऐप्लिकेशन के लिए एचटीटीपी सेवा का इस्तेमाल करें. इस क्विकस्टार्ट को पूरा करें.
- किसी स्पेस में Chat ऐप्लिकेशन जोड़ें. इसे जोड़ने के लिए चैट ऐप्लिकेशन, देखें Google Chat ऐप्लिकेशन के लिए इंटरैक्टिव सुविधाओं की जांच करें.
Node.js
- Node.js 14 या उसके बाद का वर्शन
- npm पैकेज मैनेजमेंट टूल
-
शुरू किया गया Node.js प्रोजेक्ट. नया प्रोजेक्ट शुरू करने के लिए, प्रोजेक्ट बनाएं और
नए फ़ोल्डर में स्विच करें, फिर अपने कमांड-लाइन इंटरफ़ेस में यहां दिया गया कमांड चलाएं:
npm init
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - Google Chat ऐप्लिकेशन, जिसमें इंटरैक्टिव सुविधाएं चालू हैं. बनाने के लिए इंटरैक्टिव चैट ऐप्लिकेशन के लिए एचटीटीपी सेवा का इस्तेमाल करें. इस क्विकस्टार्ट को पूरा करें.
- किसी स्पेस में Chat ऐप्लिकेशन जोड़ें. इसे जोड़ने के लिए चैट ऐप्लिकेशन, देखें Google Chat ऐप्लिकेशन के लिए इंटरैक्टिव सुविधाओं की जांच करें.
Apps Script
- Google Chat ऐप्लिकेशन, जिसमें इंटरैक्टिव सुविधाएं चालू हैं. बनाने के लिए Apps Script में इंटरैक्टिव चैट ऐप्लिकेशन के साथ, इस क्विकस्टार्ट की प्रोसेस को पूरा करें.
- किसी स्पेस में Chat ऐप्लिकेशन जोड़ें. इसे जोड़ने के लिए चैट ऐप्लिकेशन, देखें Google Chat ऐप्लिकेशन के लिए इंटरैक्टिव सुविधाओं की जांच करें.
पहला चरण: Google Cloud Console में सेवा खाता बनाना
ऐसा सेवा खाता बनाना जिसका इस्तेमाल आपका Chat ऐप्लिकेशन कर सके Google API ऐक्सेस करने के लिए.
सेवा खाता बनाना
सेवा खाता बनाने के लिए, यह तरीका अपनाएं:
Google Cloud कंसोल
- Google Cloud Console में, मेन्यू > IAM और एडमिन > सेवा खाते. पर जाएं
- सेवा खाता बनाएं पर क्लिक करें.
- सेवा खाते की जानकारी भरें. इसके बाद, बनाएं और जारी रखें पर क्लिक करें.
- ज़रूरी नहीं: Google Cloud प्रोजेक्ट के संसाधनों का ऐक्सेस देने के लिए, अपने सेवा खाते में भूमिकाएं असाइन करें. ज़्यादा जानकारी के लिए, संसाधनों का ऐक्सेस देना, उसमें बदलाव करना, और उसे वापस लेना लेख पढ़ें.
- जारी रखें पर क्लिक करें.
- ज़रूरी नहीं: ऐसे उपयोगकर्ताओं या ग्रुप के नाम डालें जो इस सेवा खाते की मदद से, कार्रवाइयां मैनेज और कर सकें. ज़्यादा जानकारी के लिए, सेवा खाते के नाम पर काम करने को मैनेज करना लेख पढ़ें.
- हो गया पर क्लिक करें. सेवा खाते के ईमेल पते को नोट कर लें.
gcloud सीएलआई
- सेवा खाता बनाएं:
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - ज़रूरी नहीं: Google Cloud प्रोजेक्ट के संसाधनों का ऐक्सेस देने के लिए, अपने सेवा खाते में भूमिकाएं असाइन करें. ज़्यादा जानकारी के लिए, संसाधनों का ऐक्सेस देना, उसमें बदलाव करना, और उसे वापस लेना लेख पढ़ें.
सेवा खाता, सेवा खाते वाले पेज पर दिखता है. इसके बाद, निजी प्रोफ़ाइल बनाएं कुंजी डालें.
निजी पासकोड बनाएं
सेवा खाते के लिए निजी पासकोड बनाने और डाउनलोड करने के लिए, यह तरीका अपनाएं:
- Google Cloud Console में, मेन्यू > IAM और एडमिन > सेवा खाते. पर जाएं
- सेवा खाता चुनें.
- बटन > कुंजी जोड़ें > नई कुंजी बनाएं पर क्लिक करें.
- JSON चुनें, फिर बनाएं पर क्लिक करें.
आपकी नई सार्वजनिक/निजी कुंजी का जोड़ा जनरेट करके, आपके मशीन नई फ़ाइल के रूप में. डाउनलोड की गई JSON फ़ाइल को
credentials.json
के तौर पर सेव करें मौजूदा डायरेक्ट्री पर काम कर रहा है. यह फ़ाइल इस कुंजी की अकेली कॉपी है. स्टोर करने का तरीक़ा जानने के लिए सुरक्षा कुंजी की मदद से, सेवा खाते की कुंजियां मैनेज करना. - बंद करें पर क्लिक करें.
सेवा खातों के बारे में ज़्यादा जानकारी के लिए, देखें सेवा खाते के बारे में ज़्यादा जानकारी मिलेगी.
दूसरा चरण: Google क्लाइंट लाइब्रेरी और अन्य डिपेंडेंसी इंस्टॉल करना
प्रोजेक्ट के लिए ज़रूरी Google क्लाइंट लाइब्रेरी और अन्य डिपेंडेंसी इंस्टॉल करें.
Java
Google क्लाइंट लाइब्रेरी और अन्य ज़रूरी डिपेंडेंसी को अपने
Maven प्रोजेक्ट, अपने प्रोजेक्ट की डायरेक्ट्री में pom.xml
फ़ाइल में बदलाव करें और
ये डिपेंडेंसी:
<dependencies>
<!-- ... existing dependencies ... -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-chat</artifactId>
<version>v1-rev20230905-2.0.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
Python
अगर आपने Python के लिए, पहले से Google क्लाइंट लाइब्रेरी इंस्टॉल नहीं की है, तो आपके कमांड-लाइन इंटरफ़ेस में यह कमांड:
pip3 install --upgrade google-api-python-client google-auth
Node.js
अपने Node.js प्रोजेक्ट में Google क्लाइंट लाइब्रेरी जोड़ने के लिए, प्रोजेक्ट की डायरेक्ट्री खोलें और अपने कमांड-लाइन इंटरफ़ेस में इस कमांड को चलाएं:
npm install "@googleapis/chat"
Apps Script
यह नमूना Apps Script लाइब्रेरी के लिए OAuth2 का इस्तेमाल करें. लाइब्रेरी जोड़ने के लिए आपके Apps Script प्रोजेक्ट में:
- बाईं ओर, एडिटर पर क्लिक करें.
- बाईं ओर, लाइब्रेरी के बगल में, लाइब्रेरी जोड़ें पर क्लिक करें .
- स्क्रिप्ट आईडी
1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
डालें. - लुक अप पर क्लिक करें. इसके बाद, जोड़ें पर क्लिक करें.
यह नमूना Chat की बेहतर सेवा का इस्तेमाल करें. अपने Apps Script प्रोजेक्ट:
- बाईं ओर, एडिटर पर क्लिक करें.
- बाईं ओर, सेवाएं के बगल में, सेवा जोड़ें पर क्लिक करें .
- Google Chat API चुनें.
- वर्शन में, v1 चुनें.
- जोड़ें पर क्लिक करें.
आप हमारे द्वारा समर्थित किसी भी भाषा का उपयोग कर सकते हैं क्लाइंट लाइब्रेरी.
तीसरा चरण: एक ऐसी स्क्रिप्ट लिखें जो Chat API से पुष्टि करने के लिए, सेवा खाते का इस्तेमाल करती हो
नीचे दिया गया कोड, Chat API को सेवा खाते का इस्तेमाल करके, इसके बाद Google Chat पर मौजूद किसी स्पेस में कोई मैसेज पोस्ट करता है:
Java
- अपने प्रोजेक्ट की डायरेक्ट्री में फ़ाइल खोलें
src/main/java/com/google/chat/app/authsample/App.java
. App.java
की सामग्री को इस कोड से बदलें:package com.google.chat.app.authsample; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.chat.v1.HangoutsChat; import com.google.api.services.chat.v1.model.Message; import com.google.auth.http.HttpCredentialsAdapter; import com.google.auth.oauth2.GoogleCredentials; /** * Authenticates with Chat API via service account credentials, * then creates a Chat message. */ public class App { // Specify required scopes. private static final String CHAT_SCOPE = "https://www.googleapis.com/auth/chat.bot"; // Specify service account details. private static final String PRIVATE_KEY_RESOURCE_URI = "/credentials.json"; public static void main( String[] args ) { try { // Run app. Message response = App.createChatMessage(); // Print details about the created message. System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } private static Message createChatMessage() throws Exception { // Build the Chat API client and authenticate with the service account. GoogleCredentials credentials = GoogleCredentials.fromStream( App.class.getResourceAsStream(PRIVATE_KEY_RESOURCE_URI)) .createScoped(CHAT_SCOPE); HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials); HangoutsChat chatService = new HangoutsChat.Builder( GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance(), requestInitializer) .setApplicationName("auth-sample-app") .build(); // The space to create the message in. // // Replace SPACE_NAME with a space name. // Obtain the space name from the spaces resource of Chat API, // or from a space's URL. String spaceName = "spaces/SPACE_NAME"; // Create a Chat message. Message message = new Message().setText("Hello, world!"); return chatService.spaces().messages().create(spaceName, message).execute(); } }
कोड में,
SPACE_NAME
को स्पेस से बदलें नाम, जिसेspaces.list
से लिया जा सकता है तरीके का इस्तेमाल करके या स्पेस के यूआरएल से किया जा सकता है.अपने प्रोजेक्ट की डायरेक्ट्री में,
resources
नाम की एक नई सबडायरेक्ट्री बनाएं.पक्का करें कि आपके सेवा खाते की निजी कुंजी फ़ाइल का नाम दिया गया हो
credentials.json
और इसेresources
सबडायरेक्ट्री में कॉपी करें.प्रोजेक्ट पैकेज में निजी कुंजी फ़ाइल को शामिल करने के लिए, Maven को कॉन्फ़िगर करने के लिए, अपने प्रोजेक्ट की डायरेक्ट्री में,
pom.xml
फ़ाइल में बदलाव करें और इन्हें जोड़ें<build>
सेक्शन में किया गया कॉन्फ़िगरेशन:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
Maven को कॉन्फ़िगर करने के लिए, ताकि प्रोजेक्ट पैकेज में डिपेंडेंसी शामिल की जा सके और अपने ऐप्लिकेशन की मेन क्लास चलाने के लिए, अपनी फ़ाइल में
pom.xml
फ़ाइल में बदलाव करें और नीचे दिया गया कॉन्फ़िगरेशन<plugins>
सेक्शन:<plugins> <!-- ... existing configurations ... --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.google.chat.app.authsample.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins>
Python
- अपनी वर्किंग डायरेक्ट्री में,
chat_app_auth.py
नाम की फ़ाइल बनाएं. chat_app_auth.py
में यह कोड शामिल करें:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created message. print(result)
कोड में,
SPACE_NAME
को स्पेस से बदलें नाम, जिसेspaces.list
से लिया जा सकता है तरीके का इस्तेमाल करके या स्पेस के यूआरएल से किया जा सकता है. पक्का करें कि आपके सेवा खाते की निजी कुंजी फ़ाइल का नामcredentials.json
है.
Node.js
- अपने प्रोजेक्ट की डायरेक्ट्री में,
chat_app_auth.js
नाम की फ़ाइल बनाएं. chat_app_auth.js
में यह कोड शामिल करें:const chat = require('@googleapis/chat'); async function createMessage() { const auth = new chat.auth.GoogleAuth({ // Specify service account details. keyFilename: 'credentials.json', // Specify required scopes. scopes: ['https://www.googleapis.com/auth/chat.bot'] }); const authClient = await auth.getClient(); // Create the Chat API client and authenticate with the service account. const chatClient = await chat.chat({ version: 'v1', auth: authClient }); // Create a Chat message. const result = await chatClient.spaces.messages.create({ // The space to create the message in. // // Replace SPACE_NAME with a space name. // Obtain the space name from the spaces resource of Chat API, // or from a space's URL. parent: 'spaces/SPACE_NAME', // The message to create. requestBody: { 'text': 'Hello, world!' } }); return result; } // Execute function then print details about the created message. createMessage().then(console.log);
कोड में,
SPACE_NAME
को स्पेस से बदलें नाम, जिसेspaces.list
से लिया जा सकता है तरीके का इस्तेमाल करके या स्पेस के यूआरएल से किया जा सकता है. पक्का करें कि आपके सेवा खाते की निजी कुंजी फ़ाइल का नामcredentials.json
है.
Apps Script
Apps Script एडिटर में,
appsscript.json
फ़ाइल में बदलाव करें और फ़ाइल कोड पाने के लिए, बाहरी अनुरोध करने के लिए ज़रूरी OAuth का दायरा जोड़ें सेवा खाते का OAuth टोकन:"oauthScopes": [ "https://www.googleapis.com/auth/script.external_request" ]
नीचे दिए गए कोड को
ChatAppAuth.gs
नाम वाली फ़ाइल में इसमें सेव करें आपका Apps Script प्रोजेक्ट:// Specify the contents of the file credentials.json. const CREDENTIALS = CREDENTIALS; const SCOPE = 'https://www.googleapis.com/auth/chat.bot'; // The space to create the message in. // // Replace SPACE_NAME with a space name. // Obtain the space name from the spaces resource of Chat API, // or from a space's URL. const PARENT = 'spaces/SPACE_NAME' /** * Authenticates with Chat API via app credentials, then posts a message. */ function createMessageWithAppCredentials() { try { const service = getService_(); if (!service.hasAccess()) { console.error(service.getLastError()); return; } // Specify the message to create. const message = {'text': 'Hello world!'}; // Call Chat API with a service account to create a message. const result = Chat.Spaces.Messages.create( message, PARENT, {}, // Authenticate with the service account token. {'Authorization': 'Bearer ' + service.getAccessToken()}); // Log details about the created message. console.log(result); } catch (err) { // TODO (developer) - Handle exception. console.log('Failed to create message with error %s', err.message); } } /** * Configures the OAuth library to authenticate with the service account. */ function getService_() { return OAuth2.createService(CREDENTIALS.client_email) .setTokenUrl('https://oauth2.googleapis.com/token') .setPrivateKey(CREDENTIALS.private_key) .setIssuer(CREDENTIALS.client_email) .setSubject(CREDENTIALS.client_email) .setScope(SCOPE) .setPropertyStore(PropertiesService.getScriptProperties()); }
कोड में,
CREDENTIALS
को इससे बदलें:credentials.json
फ़ाइल का कॉन्टेंट.कोड में,
SPACE_NAME
को स्पेस से बदलें नाम, जिसेspaces.list
से लिया जा सकता है तरीके का इस्तेमाल करके या स्पेस के यूआरएल से किया जा सकता है.
चौथा चरण: पूरा उदाहरण चलाएं
अपनी वर्किंग डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
Java
mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar
Python
python3 chat_app_auth.py
Node.js
node chat_app_auth.js
Apps Script
ChatAppAuth.gs
फ़ाइल को Apps Script एडिटर में खोलें और
Run पर क्लिक करें.
आपकी स्क्रिप्ट Chat API, जो मैसेज पोस्ट करके जवाब देता है का इस्तेमाल, चैट ऐप्लिकेशन के तौर पर चैट स्पेस में किया हो.
उदाहरण के तौर पर दी गई समस्या को हल करना
इस सेक्शन में, आम तौर पर होने वाली समस्याओं के बारे में बताया गया है. इस सैंपल को चलाने के लिए.
आपको इस ऐप्लिकेशन का इस्तेमाल करने की अनुमति नहीं है
स्क्रिप्ट चलाते समय, आपको गड़बड़ी का यह मैसेज मिल सकता है:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">
गड़बड़ी के इस मैसेज का मतलब है कि Chat ऐप्लिकेशन में Chat मैसेज बनाने की अनुमति चैट स्पेस.
गड़बड़ी को ठीक करने के लिए, चैट ऐप्लिकेशन को चैट स्पेस में जोड़ें स्क्रिप्ट में दर्ज है.
मिलते-जुलते विषय
जानें कि Chat API और क्या-क्या कर सकता है रेफ़रंस दस्तावेज़.