دمج Hubot مع Google Chat

Hubot هو وسيلة رائعة لإنشاء تطبيق يعمل على أنظمة أساسية متعددة. باستخدام محول Google Chat Hubot، يمكنك بسهولة استخدام تطبيقات Hubot في Google Chat. يعمل المحول على إدخال الرسائل في Hubot ويعرض الردود.

يدعم محوِّل Google Chat Hubot نوعَين من نقاط النهاية:

  • HTTP
  • خدمة Cloud Pub/Sub

يوضح هذا الدليل كيفية إطلاق تطبيق Hubot في Google Chat، باستخدام أحد نوعي نقطة النهاية.

تثبيت

اتّبع التعليمات الواردة في الخطوات الأولى لاستخدام Hubot لتنزيل الأدوات الضرورية وتثبيتها: Node.js وnpm وHubot generator for Yeoman.

يمكنك تجربة إنشاء مثيل جديد من جهاز Hubot باستخدام المحوِّل المدمج في shell، وتثبيت Hubot Scripts، واللعب به، والتعرّف على منظومة Hubot المتكاملة وتطوير تطبيق Hubot.

استخدام محوِّل Google Chat في Hubot

يرشدك هذا القسم خلال عملية إنشاء تطبيق Hubot الذي يستخدم محول Google Chat ونشره في AppEngine ونشر التطبيق في Google Chat. يمكنك أيضًا اختيار نشر التطبيق في أي نظام من اختيارك بخلاف AppEngine.

يدعم محول Google Chat Hubot وضعَين: HTTP وCloud Pub/Sub. يدور وضع HTTP لأعلى على خادم ويب Express ويستمع إلى الأحداث في منفذ من تحديد المستخدم. ينشئ وضع "النشر/الاشتراك في السحابة الإلكترونية" مشتركًا/مشتركًا ويسحب الأحداث من اشتراك محدّد من قِبل المستخدم. عند تلقي الأحداث من Google Chat، ينشئ كلا الوضعين كائن HangoutsChatMessage (الذي يوسِّع أحد كائنات الرسالة في Hubot ويمرِّره إلى النص البرمجي لـ Hubot. يتم نشر الرد من نص Hubot البرمجي على مساحة الدردشة أو الرسالة المباشرة في Google Chat التي تم نشر حدث الرسالة الأصلية منها على التطبيق.

إنشاء مثيل Hubot

تأكد من إعداد Node.js ومدير حزم npm وYoman generator لـ Hubot قبل المتابعة.

لنفترض أنك تريد إنشاء تطبيق اسمه "myhubot". ابدأ بإنشاء دليل جديد ثم أنشئ مثيل Hubot فيه.

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

في هذه المرحلة، يطرح ييومان بعض الأسئلة حول الشخص الذي يصنع التطبيق والمحوّل الذي يجب استخدامه. حدد google-hangouts-chat للمحول.

بدلاً من ذلك، يمكنك تثبيت المحوّل بشكل منفصل باستخدام الأمر التالي:

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

في Hubot، يتم تنفيذ السلوك الفعلي للتطبيق باستخدام النصوص البرمجية. يحتوي Hubot على نموذج نص برمجي يمكنك استخدامه للاختبار. بعد الانتهاء من إعداد كل شيء، يمكنك تخصيص النصوص البرمجية الخاصة بك وإضافتها لتنفيذ السلوك المطلوب للتطبيق.

تهيئة الخيارات لمحوّل دردشة Google

يتم تمرير الخيارات إلى محوّل 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'

خيارات HTTP

ولا يلزم إجراء تهيئة إضافية لتشغيل المحول في وضع HTTP. يستخدم المحوِّل خادم Hubot السريع، والذي يتم تشغيله على المنفذ 8080 تلقائيًا. لتغيير المنفذ، عليك ضبط متغيّر البيئة PORT:

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

خيارات Cloud Pub/Sub

راجع إعداد نقطة النشر/الاشتراك لإعداد مشروع Google Cloud Platform/موضوع Cloud Pub/Sub والاشتراك وحساب الخدمة لاستخدامه من خلال تطبيقك. وتجاهل نموذج الشفرة في الرابط؛ في الفقرات أدناه، ستنشئ تطبيق Hubot باستخدام محول دردشة Google.

لاستخدام محول دردشة Google في وضع النشر/الاشتراك، يجب تعيين الخيارات التالية:

# 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

استنادًا إلى ما إذا كنت قد هيئت محوّل HTTP أو محوّل Cloud Pub/Sub، يمكن أن تظهر أيضًا معلومات أخرى ذات صلة على الشاشة.

النشر في AppEngine

اتبع الإرشادات في AppEngine Quickstart لإعداد مشروع Google Cloud Platform وبيئة التطوير.

بعد إعداد ذلك، اتبع الخطوات الواردة أدناه لتهيئة مثيل Hubot ونشره في AppEngine.

إنشاء app.yaml

أولاً، أنشِئ ملف app.yaml في دليل Hubot. سيشبه المحتوى المثال التالي:

runtime: nodejs8
env_variables:
  PORT: 8080
  

تهيئة البيئة

بعد ذلك، راجِع التعليمات في هذه الصفحة لضبط متغيّرات البيئة.

إنشاء package.json

أخيرًا، أنشئ ملف package.json يحدد إصدار العقدة.js وخاصية النصوص البرمجية المستخدمة لتشغيل التطبيق.

  • حدِّد إصدار Node.js الذي ترغب في استخدامه مع الخاصية engines في ملف package.json.
  • يستخدم AppEngine npm start لبدء تشغيل تطبيقك. عليك إعداد الخاصية scripts في ملف package.json لإعداد بدء npm لاستدعاء 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. هيئ نقطة النهاية المناسبة (HTTP أو Cloud Pub/Sub) في صفحة تهيئة التطبيق. إذا أنشأت مشروع Google Cloud Platform في الخطوة السابقة لنشر مثيل Hubot في AppEngine، يمكنك استخدام مشروع Google Cloud Platform نفسه لنشر تطبيقك.

اختبار التطبيق

بعد نشر تطبيقك، يمكنك إضافته إلى مساحة أو بدء رسالة مباشرة معه في Google Chat. يجب أن يستجيب تطبيقك للرسائل المُرسَلة إليه. يأتي Hubot مع نموذج نص برمجي في مجلد scripts. ألغِ تعليق الشفرة في نموذج النص البرمجي الذي يستجيب للرسائل التي تحتوي على كلمة "الشاري" وأعد تشغيل التطبيق.

إذا سميت تطبيقك "myhubot" وأضفته إلى مساحة عمل، يمكنك مراسلته كما هو موضّح أدناه:

@myhubot badger

من المفترض أن ترى الرد التالي من تطبيقك:

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

يمكنك الآن تخصيص نصوص Hubot البرمجية أو إضافتها إلى مثيل Hubot لتنفيذ الوظائف المطلوبة لتطبيقك. للاطّلاع على أمثلة لنصوص برمجية خاصة بـ Google Chat، يمكنك الاطّلاع على مستودع GitHub لمهايئ Google Chat.