HubChat को Google Chat के साथ इंटिग्रेट करना

Hubot एक ऐसा ऐप्लिकेशन बनाने का शानदार तरीका है जो कई प्लैटफ़ॉर्म पर काम करता है. Google Chat Hubot अडैप्टर की मदद से, Google Chat में अपने Hubot ऐप्लिकेशन आसानी से इस्तेमाल किए जा सकते हैं. अडैप्टर Hubot में मैसेज फ़ीड करता है और जवाब दिखाता है.

Google Chat Hubot अडैप्टर दो तरह के एंडपॉइंट के साथ काम करता है:

  • HTTP
  • Cloud Pub/Sub

इस गाइड में, एंडपॉइंट के किसी भी टाइप का इस्तेमाल करके, Google Chat में Hubot ऐप्लिकेशन लॉन्च करने का तरीका बताया गया है.

इंस्टॉल करें

ज़रूरी टूल डाउनलोड और इंस्टॉल करने के लिए, Hubot का इस्तेमाल शुरू करना में दिए गए निर्देशों का पालन करें: Node.js, npm, और Yeoman के लिए Hub जनरेटर.

आप Hubot का नया इंस्टेंस बना सकते हैं. इसमें, बिल्ट-इन शेल अडैप्टर का इस्तेमाल होता है, Hubot स्क्रिप्ट इंस्टॉल किया जाता है, इसके साथ गेम खेला जा सकता है, और Hubot नेटवर्क की मदद से, Hubot ऐप्लिकेशन डेवलप किया जा सकता है.

HubT Google Chat अडैप्टर का इस्तेमाल करना

इस सेक्शन में, आपको ऐसा HubOT ऐप्लिकेशन बनाने में मदद मिलेगी जो Google Chat के अडैप्टर का इस्तेमाल करता है, उसे AppEngine में डिप्लॉय करता है, और उसे Google Chat में पब्लिश करता है. ऐप्लिकेशन को AppEngine के अलावा अपनी पसंद के किसी भी सिस्टम में डिप्लॉय किया जा सकता है.

Google Chat Hubot अडैप्टर दो मोड के साथ काम करता है: एचटीटीपी और Cloud Pub/Sub. एचटीटीपी मोड, एक्सप्रेस वेब सर्वर को घुमाता है और उपयोगकर्ता के तय किए गए पोर्ट में इवेंट को सुनता है. Cloud Pub/Sub मोड, Pub/Sub सदस्यता बनाता है और उपयोगकर्ता से सदस्यता के इवेंट लेता है. Google Chat से इवेंट होने पर, दोनों मोड HangoutsChatMessage ऑब्जेक्ट बनाते हैं (जो Hubot के किसी Message ऑब्जेक्ट में से एक को बड़ा करता है) और उसे आपकी Hubot स्क्रिप्ट में भेज देते हैं. आपकी Hubot स्क्रिप्ट का जवाब, Google Chat में मौजूद चैट स्पेस या डीएम को पोस्ट किया जाता है, जिससे ऐप्लिकेशन में मूल मैसेज इवेंट पब्लिश हुआ था.

Hubot इंस्टेंस बनाएं

आगे बढ़ने से पहले, Hubot के लिए Node.js, npm पैकेज मैनेजर, और Yoman जनरेटर सेट अप करना न भूलें.

मान लें कि आपको "myhubot" ऐप्लिकेशन बनाना है. एक नई डायरेक्ट्री बनाकर शुरुआत करें और फिर अपना HubOT इंस्टेंस बनाएं.

$> mkdir myhubot
$> cd myhubot
$> yo hubot

इस समय, योमन कुछ सवाल पूछते हैं कि ऐप्लिकेशन कौन बना रहा है और किस अडैप्टर का इस्तेमाल करना है. अडैप्टर के लिए google-hangouts-chat तय करें.

इसके अलावा, नीचे दिए गए निर्देश से अडैप्टर को अलग से इंस्टॉल किया जा सकता है:

$> npm install --save hubot-google-hangouts-chat

Hubot में, ऐप्लिकेशन का असली व्यवहार स्क्रिप्ट का इस्तेमाल करके लागू किया जाता है. Hubot में एक स्क्रिप्ट शामिल होती है, जिसका इस्तेमाल आप टेस्ट करने के लिए कर सकते हैं. सभी सेट अप पूरा होने के बाद, पसंद के मुताबिक ऐप्लिकेशन के व्यवहार को लागू करने के लिए, स्क्रिप्ट को अपनी पसंद के मुताबिक बनाएं और जोड़ें.

Google Chat के अडैप्टर के लिए विकल्प कॉन्फ़िगर करना

विकल्पों को Google Chat अडैप्टर में, एनवायरमेंट वैरिएबल का इस्तेमाल करके पास किया जाता है.

सेवा खाता

अडैप्टर का इस्तेमाल करने के लिए आपको अपने ऐप्लिकेशन के लिए सेवा खाता सेट अप करना होगा. सेवा खाता बनाने और अपनी कुंजी वाली JSON फ़ाइल डाउनलोड करने के लिए, सेवा खातों का इस्तेमाल करना गाइड का पालन करें. इसके बाद, एनवायरमेंट वैरिएबल में अपनी कुंजी का पाथ सेट करें:

# Point to the private key json file of the service account you created.
$> export GOOGLE_APPLICATION_CREDENTIALS='Path to the service account key json file'

एचटीटीपी विकल्प

एचटीटीपी मोड में अडैप्टर चलाने के लिए, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती. अडैप्टर, Hubot के एक्सप्रेस सर्वर का इस्तेमाल करता है. यह डिफ़ॉल्ट रूप से, पोर्ट 8080 पर चलता है. पोर्ट बदलने के लिए, आपको PORT एनवायरमेंट वैरिएबल सेट करना होगा:

# Port number, 8080 by default.
$> export PORT=8080

Cloud Pub/Sub विकल्प

अपने ऐप्लिकेशन में इस्तेमाल करने के लिए, GCP प्रोजेक्ट, Cloud Pub/Sub विषय, सदस्यता, और सेवा खाता सेट अप करने के लिए, Pub/Sub सेट अप करें देखें. लिंक में दिए गए सैंपल कोड पर ध्यान न दें. नीचे दिए गए पैराग्राफ़ में, आपको Google Chat अडैप्टर का इस्तेमाल करके HubT ऐप्लिकेशन बनाना होगा.

Pub/Sub मोड में Google Chat अडैप्टर का इस्तेमाल करने के लिए, आपको ये विकल्प सेट करने होंगे:

# To toggle the adapter to Pub/Sub mode.
$> export IS_PUBSUB=true

# Set the IDs of the project and subscription you created.
$> export PUBSUB_PROJECT_ID='GCP Project ID'
$> export PUBSUB_SUBSCRIPTION_ID='GCP Cloud Pub/Sub Subscription ID'

डिवाइस पर चलाएं

Hubot इंस्टेंस को स्थानीय तौर पर चलाने के लिए, myhubot डायरेक्ट्री से जुड़ा निर्देश चलाएं:

# For HTTP mode
$> bin/hubot -a google-hangouts-chat

# For Cloud Pub/Sub mode
$> bin/hubot -d -a google-hangouts-chat

अगर Google Chat Hubot अडैप्टर को शुरू कर दिया गया है, तो कंसोल में यह मैसेज दिखेगा:

Hangouts Chat adapter initialized successfully

आपने एचटीटीपी अडैप्टर को कॉन्फ़िगर किया है या क्लाउड Pub/Sub अडैप्टर के आधार पर, अन्य ज़रूरी जानकारी भी स्क्रीन पर दिख सकती है.

AppEngine में परिनियोजन

GCP प्रोजेक्ट और डेवलपमेंट एनवायरमेंट सेट अप करने के लिए, AppEngine में क्विकस्टार्ट के निर्देशों का पालन करें.

इसके सेट अप हो जाने के बाद, AppEngine में अपने Hub इंस्टेंस को कॉन्फ़िगर और डिप्लॉय करने के लिए, नीचे दिया गया तरीका अपनाएं.

app.yaml बनाएं

सबसे पहले, अपनी Hubot डायरेक्ट्री में app.yaml फ़ाइल बनाएं. कॉन्टेंट, नीचे दिए गए उदाहरण से मेल खाएगा:

runtime: nodejs8
env_variables:
  PORT: 8080
  

एनवायरमेंट कॉन्फ़िगर करें

इसके बाद, इस पेज पर मौजूद एनवायरमेंट वैरिएबल को कॉन्फ़िगर करने के निर्देश देखें.

package.json बनाएं

आखिर में, package.json फ़ाइल बनाएं जिसमें नोड.js वर्शन के साथ-साथ ऐप्लिकेशन लॉन्च करने के लिए इस्तेमाल की गई स्क्रिप्ट की जानकारी दी गई हो.

  • वह Node.js वर्शन बताएं जिसका इस्तेमाल आपको package.json फ़ाइल में इंजन प्रॉपर्टी के साथ करना है.
  • आपका ऐप्लिकेशन शुरू करने के लिए AppEngine npm start का इस्तेमाल करता है. npm कॉन्फ़िगर करने के लिए अपने package.json में scripts प्रॉपर्टी सेट अप करके Hubot को शुरू करें.
# Sample snippet of package.json file

"dependencies" : {
  "hubot": "^3.1.1",
  "hubot-google-hangouts-chat": "^3",
  # more deps...
}

"scripts": {
  "start": "bin/hubot -a google-hangouts-chat"
},
"engines": {
  "node": ">=8"
}

# Once you've set up everything, deploy the app in AppEngine
$> gcloud app deploy

Google Chat में पब्लिश करें

Google Chat में ऐप्लिकेशन को पब्लिश करने के लिए, Google Cloud Console की मदद से, ऐप्लिकेशन पब्लिश करें पेज पर दिए गए निर्देशों का पालन करें. ऐप्लिकेशन कॉन्फ़िगरेशन पेज में सही एंडपॉइंट (एचटीटीपी या क्लाउड Pub/Sub) कॉन्फ़िगर करें. अगर आपने पिछले चरण में, AppEngine में अपने Hubot इंस्टेंस को डिप्लॉय करने के लिए GCP प्रोजेक्ट बनाया है, तो आपके पास उसे पब्लिश करने के लिए, उसी GCP प्रोजेक्ट को इस्तेमाल करने का विकल्प होता है.

ऐप्लिकेशन का टेस्ट करें

ऐप्लिकेशन पब्लिश करने के बाद, उसे स्पेस में जोड़ा जा सकता है या Google Chat में डायरेक्ट मैसेज भेजा जा सकता है. आपके ऐप्लिकेशन को भेजे गए मैसेज का जवाब देना चाहिए. Hubot अपने scripts फ़ोल्डर में एक स्क्रिप्ट के साथ आता है. नमूना स्क्रिप्ट में उस कोड की टिप्पणी हटाएं जो "बैजर" शब्द वाले मैसेज का जवाब देता है और ऐप्लिकेशन को फिर से शुरू करें.

अगर आपने अपने ऐप्लिकेशन को "myhubot" नाम दिया है और उसे किसी स्पेस में जोड़ दिया है, तो नीचे बताए गए तरीके से, उसे मैसेज में दिखाया जा सकता है:

@myhubot badger

आपको अपने ऐप्लिकेशन से यह जवाब दिखेगा:

Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS

अब आपको ऐप्लिकेशन के लिए ज़रूरी फ़ंक्शन लागू करने होंगे. ऐसा करने के लिए, आपको Hubot इंस्टेंस में अपनी पसंद के मुताबिक बदलाव करने होंगे या उसे जोड़ने का विकल्प मिलेगा. Google Chat से जुड़ी खास स्क्रिप्ट देखने के लिए, Google Chat के अडैप्टर GitHub का डेटा स्टोर करने की जगह देखें.