इस गाइड में उन अलग-अलग तरीकों के बारे में बताया गया है जिनसे Google Chat ऐप्लिकेशन, मैसेज भेज सकते हैं:
- उपयोगकर्ता इंटरैक्शन का जवाब देकर रीयल टाइम में टेक्स्ट और कार्ड मैसेज भेजें.
Message
संसाधन परcreate
तरीके को कॉल करके, एसिंक्रोनस तरीके से मैसेज और कार्ड मैसेज भेजें.- मैसेज थ्रेड शुरू करें या उसका जवाब दें.
- मैसेज भेजें और उसे नाम दें.
Message
रिसॉर्स, Google Chat में टेक्स्ट या कार्ड मैसेज दिखाता है. Google Chat API में create
, get
, update
या delete
के लिए अलग-अलग तरीकों से कॉल करके मैसेज भेजा जा सकता है. मैसेज और कार्ड मैसेज के बारे में ज़्यादा जानने के लिए, Google Chat के मैसेज की खास जानकारी देखें.
Google Chat API के Message
संसाधन पर create
तरीके का इस्तेमाल करके, एसिंक्रोनस तरीके से मैसेज या कार्ड मैसेज भेजने के बजाय, Google Chat ऐप्लिकेशन रीयल टाइम में मैसेज बना सकते हैं, ताकि उपयोगकर्ताओं के इंटरैक्शन का जवाब दे सकें. लोगों के इंटरैक्शन का जवाब देने के लिए पुष्टि करने की ज़रूरत नहीं होती. साथ ही, इंटरैक्टिव डायलॉग और लिंक की झलक समेत दूसरे तरह के मैसेज की सुविधा काम नहीं करती. ज़्यादा जानकारी के लिए, अपने Google Chat ऐप्लिकेशन से होने वाले इंटरैक्शन पाना और उनका जवाब देना देखें.
ज़रूरी शर्तें
Node.js
- Google Workspace खाता, जिससे Google Chat को ऐक्सेस किया जा सकता हो.
- पब्लिश किया गया Chat ऐप्लिकेशन. Chat ऐप्लिकेशन बनाने के लिए, इस क्विकस्टार्ट का पालन करें.
- एसिंक्रोनस मैसेज भेजने के लिए Chat ऐप्लिकेशन के लिए
अनुमति को कॉन्फ़िगर कर दिया गया है. रीयल टाइम में मैसेज भेजने के लिए,
किसी अनुमति कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
- मैसेज भेजने के लिए, अनुमति पाने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:
chat.messages.create
याchat.messages
के अनुमति वाले दायरे के साथ उपयोगकर्ता की पुष्टि करना.chat.bot
अनुमति देने के स्कोप के साथ ऐप्लिकेशन की पुष्टि करना.
- कार्ड मैसेज भेजने के लिए,
chat.bot
अनुमति के दायरे के साथ ऐप्लिकेशन से पुष्टि करना ज़रूरी है.
- मैसेज भेजने के लिए, अनुमति पाने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:
Python
- Python 3.6 या इसके बाद का वर्शन
- पीआईपी पैकेज मैनेजमेंट टूल
Python के लिए Google की नई क्लाइंट लाइब्रेरी. उन्हें इंस्टॉल या अपडेट करने के लिए, अपने कमांड-लाइन इंटरफ़ेस में नीचे दिया गया कमांड चलाएं:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
पब्लिश किया गया Chat ऐप्लिकेशन. Chat ऐप्लिकेशन बनाने और पब्लिश करने के लिए, Google Chat ऐप्लिकेशन बनाना लेख पढ़ें.
एसिंक्रोनस मैसेज भेजने के लिए Chat ऐप्लिकेशन के लिए अनुमति को कॉन्फ़िगर कर दिया गया है. रीयल टाइम में मैसेज भेजने के लिए, किसी अनुमति कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
- मैसेज भेजने के लिए, अनुमति पाने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:
chat.messages.create
याchat.messages
के अनुमति वाले दायरे के साथ उपयोगकर्ता की पुष्टि करना.chat.bot
अनुमति देने के स्कोप के साथ ऐप्लिकेशन की पुष्टि करना.
- कार्ड मैसेज भेजने के लिए,
chat.bot
अनुमति के दायरे के साथ ऐप्लिकेशन से पुष्टि करना ज़रूरी है.
- मैसेज भेजने के लिए, अनुमति पाने के इन दोनों तरीकों का इस्तेमाल किया जा सकता है:
Apps Script
- Google Workspace खाता, जिससे Google Chat को ऐक्सेस किया जा सकता हो.
- पब्लिश किया गया Chat ऐप्लिकेशन. Chat ऐप्लिकेशन बनाने के लिए, इस क्विकस्टार्ट का पालन करें.
मैसेज भेजें
यह सेक्शन नीचे बताए गए दो तरीकों से मैसेज भेजने का तरीका बताता है:
- उपयोगकर्ता के इंटरैक्शन का जवाब देकर, रीयल टाइम में मैसेज भेजें.
- Google Chat API को एसिंक्रोनस रूप से कॉल करके, मैसेज भेजें.
रीयल टाइम में मैसेज भेजना
इस उदाहरण के मुताबिक, जब भी आपका Chat ऐप्लिकेशन किसी स्पेस में जोड़ा जाता है, तो वह मैसेज बनाता है और उसे भेजता है. उपयोगकर्ताओं के शामिल होने के सबसे सही तरीकों के बारे में जानने के लिए, लोगों और स्पेस में शामिल होने की सुविधा के साथ शुरुआत करना लेख पढ़ें.
जब कोई उपयोगकर्ता आपके Chat ऐप्लिकेशन को किसी स्पेस में जोड़ता है, तब उसे मैसेज भेजने के लिए आपका Chat ऐप्लिकेशन, ADDED_TO_SPACE
इंटरैक्शन इवेंट के जवाब देता है. मैसेज से ADDED_TO_SPACE
इंटरैक्शन इवेंट का जवाब देने के लिए, इस कोड का इस्तेमाल करें:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if(req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
कोड सैंपल से यह मैसेज दिखता है:
एसिंक्रोनस तरीके से मैसेज भेजें
नीचे दिए गए सेक्शन में, ऐप्लिकेशन की पुष्टि करने और उपयोगकर्ता की पुष्टि करने की सुविधा का इस्तेमाल करके, एसिंक्रोनस तरीके से मैसेज भेजने का तरीका बताया गया है.
मैसेज भेजने के लिए, अपने अनुरोध में यह जानकारी दें:
- ऐप्लिकेशन की पुष्टि करने के साथ,
chat.bot
के अनुमति का स्कोप बताएं. उपयोगकर्ता की पुष्टि करने के साथ,chat.messages.create
के लिए अनुमति का स्कोप बताएं. Message
रिसॉर्स परcreate
तरीके को कॉल करें.
ऐप्लिकेशन की पुष्टि करने के साथ मैसेज भेजें
यहां ऐप्लिकेशन की पुष्टि करने वाला मैसेज भेजने का तरीका बताया गया है:
Python
- जिस डायरेक्ट्री पर काम किया जा रहा है उसमें
chat_create_text_message_app.py
नाम की कोई फ़ाइल बनाएं. chat_create_text_message_app.py
में यह कोड शामिल करें:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
कोड में,
SPACE
को स्पेस के नाम से बदलें. इसे Chat API मेंspaces.list()
तरीके से या स्पेस के यूआरएल से लिया जा सकता है.अपनी वर्क डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_create_text_message_app.py
Chat API,
Message
का एक इंस्टेंस दिखाता है, जिसमें भेजे गए मैसेज की जानकारी होती है.
उपयोगकर्ता की पुष्टि के साथ मैसेज भेजें
उपयोगकर्ता की पुष्टि करके मैसेज भेजने का तरीका यहां बताया गया है:
Python
- जिस डायरेक्ट्री पर काम किया जा रहा है उसमें
chat_create_text_message_user.py
नाम की कोई फ़ाइल बनाएं. chat_create_text_message_user.py
में यह कोड शामिल करें:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a text message in a Chat space. ''' # Start with no credentials. creds = None # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
कोड में,
SPACE
को स्पेस के नाम से बदलें. इसे Chat एपीआई मेंspaces.list()
तरीके से या स्पेस के यूआरएल से हासिल किया जा सकता है.अपनी वर्क डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_create_text_message_user.py
Chat API,
Message
का एक इंस्टेंस दिखाता है, जिसमें भेजे गए मैसेज की जानकारी होती है.
कार्ड के मैसेज भेजें
इस सेक्शन में, कार्ड के मैसेज भेजने के दो तरीके नीचे दिए गए हैं:
- उपयोगकर्ता के इंटरैक्शन का जवाब देकर, रीयल टाइम में कार्ड मैसेज भेजें.
- Google Chat API को एसिंक्रोनस रूप से कॉल करके, कार्ड मैसेज भेजें.
रीयल टाइम में कार्ड मैसेज भेजें
चैट ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन का जवाब देने के लिए, कार्ड मैसेज बना सकते हैं. जैसे, जब कोई उपयोगकर्ता Chat ऐप्लिकेशन को मैसेज भेजता है या Chat ऐप्लिकेशन को किसी स्पेस में जोड़ता है. लोगों के इंटरैक्शन का जवाब देने के बारे में ज़्यादा जानने के लिए, Chat ऐप्लिकेशन से इंटरैक्शन के इवेंट पाना और उनका जवाब देना देखें.
इस उदाहरण में, जब कोई उपयोगकर्ता Chat ऐप्लिकेशन पर मैसेज भेजता है और Chat ऐप्लिकेशन, जवाब में एक कार्ड मैसेज भेजता है जिसमें उपयोगकर्ता का नाम और अवतार की इमेज दिखती है:
Node.js
Python
Apps Script
एसिंक्रोनस रूप से कार्ड संदेश भेजें
कार्ड मैसेज भेजने के लिए, अपने अनुरोध में यह पास करें:
- ऐप्लिकेशन की पुष्टि करने के साथ,
chat.bot
के अनुमति का स्कोप बताएं. उपयोगकर्ता की पुष्टि के साथ कार्ड मैसेज नहीं भेजा जा सकता. Message
रिसॉर्स परcreate
तरीके को कॉल करें.
कार्ड मैसेज का एक उदाहरण नीचे दिया गया है:
ऐप्लिकेशन की पुष्टि करने के साथ कार्ड मैसेज भेजने का तरीका यहां बताया गया है:
Python
- जिस डायरेक्ट्री पर काम किया जा रहा है उसमें
chat_create_card_message.py
नाम की कोई फ़ाइल बनाएं. chat_create_card_message.py
में यह कोड शामिल करें:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body= { 'cardsV2': [{ 'cardId': 'createCardMessage', 'card': { 'header': { 'title': 'A card message!', 'subtitle': 'Created with the Chat API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() print(result)
कोड में,
SPACE
को स्पेस के नाम से बदलें. इसे Chat API मेंspaces.list
तरीके से या स्पेस के यूआरएल से लिया जा सकता है.अपनी वर्क डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_create_card_message.py
मैसेज थ्रेड शुरू करें या उसका जवाब दें
मैसेज थ्रेड शुरू करने के लिए, मैसेज भेजें और
thread.name
खाली छोड़ दें. थ्रेड बनाते समय, Google Chat उसे अपने-आप भर देता है. वैकल्पिक रूप से, थ्रेड के नाम को पसंद के मुताबिक बनाने के लिए, thread.threadKey
फ़ील्ड बताएं.
किसी मैसेज थ्रेड का जवाब देने के लिए, ऐसा मैसेज भेजें जिसमें थ्रेड के
threadKey
या name
फ़ील्ड के बारे में बताया गया हो. अगर थ्रेड को किसी व्यक्ति या दूसरे
चैट ऐप्लिकेशन ने बनाया है, तो आपको thread.name
फ़ील्ड का इस्तेमाल करना होगा.
अगर कोई मिलता-जुलता थ्रेड नहीं मिलता, तो messageReplyOption
फ़ील्ड को सेट करके तय
किया जा सकता है कि नया थ्रेड शुरू हो या पोस्ट न हो.
nameOfThread
के तौर पर बताए गए threadKey
फ़ील्ड वाले थ्रेड को शुरू करने या उसका जवाब देने का तरीका यहां बताया गया है:
Python
- जिस डायरेक्ट्री पर काम किया जा रहा है उसमें
chat_create_message_thread.py
नाम की कोई फ़ाइल बनाएं. chat_create_message_thread.py
में यह कोड शामिल करें:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Whether to start a thread or reply to an existing one. # # Required when threading is enabled in a space unless starting a # thread. Ignored in other space types. Threading is enabled when # space.spaceThreadingState is THREADED_MESSAGES. # # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread # if one exists, otherwise it starts a new one. messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', # The message body. body={ # The message to create. 'text': 'Start or reply to another message in a thread!', # The thread to start or reply to. 'thread': { 'threadKey': 'nameOfThread' } } ).execute() print(result)
कोड में,
SPACE
को स्पेस के नाम से बदलें. इसे Chat API मेंspaces.list
तरीके से या स्पेस के यूआरएल से लिया जा सकता है.अपनी वर्क डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_create_message_thread.py
Chat API,
Message
का एक इंस्टेंस दिखाता है, जिसमें भेजे गए मैसेज की जानकारी होती है.
मैसेज भेजना और उसे नाम देना
इस सेक्शन में, पसंद के मुताबिक नाम वाला मैसेज भेजने का तरीका बताया गया है. आप
मैसेज के नामों का इस्तेमाल
मैसेज पाने,
अपडेट करने या
मिटाने के लिए करते हैं.
पसंद के मुताबिक नाम असाइन करने पर, Chat ऐप्लिकेशन उस मैसेज को वापस ला सकता है. हालांकि, ऐसा करने के लिए, मैसेज name
को सेव नहीं किया जाता. यह मैसेज भेजने के दौरान दिखने वाले रिस्पॉन्स के मुख्य हिस्से से सेव होता है.
पसंद के मुताबिक नाम असाइन करने से जनरेट किया गया name
फ़ील्ड, मैसेज के संसाधन का नाम नहीं बदलता. इसके बजाय, यह कस्टम नाम को clientAssignedMessageId
फ़ील्ड के तौर पर सेट करता है. इसे बाद की कार्रवाइयों, जैसे कि मैसेज अपडेट करने या मिटाने की प्रोसेस के दौरान रेफ़रंस के तौर पर इस्तेमाल किया जा सकता है.
पसंद के मुताबिक नाम बनाने के लिए ये शर्तें ज़रूरी हैं:
client-
से शुरू करें. उदाहरण के लिए,client-custom-name
एक मान्य कस्टम नाम है, लेकिनcustom-name
नहीं है.- सिर्फ़ अंग्रेज़ी के छोटे अक्षरों, संख्याओं, और हाइफ़न का इस्तेमाल करें.
- इसमें 63 से ज़्यादा वर्ण नहीं होने चाहिए.
- मैसेज भेजते समय, इस्तेमाल किया गया कस्टम नाम तय करने से गड़बड़ी मिलती है, लेकिन
update
औरdelete
जैसे दूसरे तरीके उम्मीद के मुताबिक काम करते हैं.
मैसेज भेजने और उसे नाम देने का तरीका यहां दिया गया है:
Python
- जिस डायरेक्ट्री पर काम किया जा रहा है उसमें
chat_create_named_message.py
नाम की कोई फ़ाइल बनाएं. chat_create_named_message.py
में यह कोड शामिल करें:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message with a custom name. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Custom name for the message used to facilitate later operations. messageId='client-custom-name', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
कोड में,
SPACE
को स्पेस के नाम से बदलें. इसे Chat API मेंspaces.list
तरीके से या स्पेस के यूआरएल से लिया जा सकता है.अपनी वर्क डायरेक्ट्री में, सैंपल बनाएं और चलाएं:
python3 chat_create_named_message.py
Chat API,
Message
का एक इंस्टेंस दिखाता है, जिसमें भेजे गए मैसेज की जानकारी होती है.
समस्या हल करें
जब Google Chat ऐप्लिकेशन या कार्ड पर कोई गड़बड़ी दिखती है, तो Chat के इंटरफ़ेस पर "कोई गड़बड़ी हुई" या "आपके अनुरोध पर कार्रवाई नहीं की जा सकी" मैसेज दिखता है. कभी-कभी Chat के यूज़र इंटरफ़ेस (यूआई) में गड़बड़ी का कोई मैसेज नहीं दिखता. हालांकि, Chat ऐप्लिकेशन या कार्ड से कोई अनचाहा नतीजा मिलता है. उदाहरण के लिए, हो सकता है कि आपको कार्ड का कोई मैसेज न दिखे.
हालांकि, हो सकता है कि Chat के यूज़र इंटरफ़ेस (यूआई) में गड़बड़ी का कोई मैसेज न दिखे, लेकिन गड़बड़ी के मैसेज लॉग करने की सुविधा चालू होने पर, आपको गड़बड़ियों को ठीक करने में मदद मिलेगी. गड़बड़ियों को देखने, डीबग करने, और ठीक करने में मदद पाने के लिए, Google Chat की गड़बड़ियों को ठीक करना और उन्हें हल करना लेख पढ़ें.
मिलते-जुलते विषय
- मैसेज फ़ॉर्मैट करना.
- किसी मैसेज के बारे में ज़्यादा जानकारी पाएं.
- स्पेस में मैसेज की सूची बनाना.
- मैसेज अपडेट करना.
- मैसेज मिटाना.
- Google Chat मैसेज में उपयोगकर्ताओं की पहचान करें.