HubotでYammer用Botを開発したときのハマりどころ

こんにちは、技研の「むらたん」です。

ChatOpsやってますか?「乗るしかない このビッグウェーブに」ということで、今期の開発技術SIGでも「定形作業の自動化 powered by ChatOps」をテーマとしています。

ChatOpsするなら、

ChatツールとしてSlackを導入して、HubotでBotスクリプトを開発して、「PING」って書き込むと「PONG」って返ってきたり、「PUG」って書き込むと、可愛いワンちゃんの画像を探してくれるんです。

みたいな内容はよく見かけますが、エンタープライズ利用を考えると、そう甘くはありません。

弊社の現状における課題と対策

「Slack」のエンタープライズ利用

  • GmailやOffice365を利用しているのに、これ以上、コミュニケーションインフラを増やすことはできません。
  • 今回はOffice365に含まれる「Yammer」でやってみることにしました。

「Hubot」でBotスクリプトを開発

  • Hubotって、Javascriptを便利にしたCoffeeScriptで開発する必要がありますが、そんな言語を書いたことはありません。
  • HubotのRuby版であるLitaなどの利用も考えましたが、Yammerとの接続アダプタが公開されていません。
  • 今回は開発量を最小限とするため、CoffeeScriptを覚えながら、Hubotで開発することにしました。

「PING」って書き込むと「PONG」って返ってくる

  • 特定の入力に対して特定の反応をするのは簡単そうですが、状態の管理はどうするのでしょう。
  • Yammerは「チャット」ではなく「ソーシャル」ですが、Slackと同じ感覚で使えるのでしょうか。
  • 今回のエントリーはこのあたりの課題をどのように乗り越えたか、を紹介します。

続きを読む

Slack、TwitterにWatson質問応答botを作ってみた(後編)

こんにちは、技術研究所のウエサマです。

この記事は、質問すると答えを教えてくれるボットをIBM Watsonで実装し、Slack、Twitterに組み込んで使ってみたという記事(チュートリアル)の後編となります。
今回のポイントはメッセージを受信しWatsonへの問合せを行うスクリプト部分への変更を行うことなく、ボットを稼働させるプラットホームをSlackからTwitterに変更するという点になります。
このようにHubotはプラットホームの違いをAdapterにて吸収してくれるため、開発資産を有効に活用する事ができます。
前編はこちら⇒Slack、TwitterにWatson質問応答botを作ってみた(前編)

続きを読む

Slack、TwitterにWatson質問応答botを作ってみた(前編)

こんにちは、技術研究所のウエサマです。

この記事では、質問すると答えを教えてくれるボットをIBM Watsonで実装し、Slack、Twitterに組み込んで使ってみたという記事(チュートリアル)の前編となります。
尚、今回の記事にて採用したボットはHubotとなります。

歯車 Hubot

Hubotはadapter, robot,script の3つの機能から構成され、ボットの処理はCoffee Scriptを使い記述します。ボットが動作するチャットシステムに依存する部分は、全てAdapterが吸収するため、例えばSlackで動かしてたボットを明日からTwitterで動かします。と言われても、Adapterを変更することで対応できるため開発したscriptはそのまま活用する事ができます。この点は、とてもいいですね。

続きを読む