Top / Hubot / TIPS集

Slackと連係

Slack側であらかじめHubotを追加しておきます。具体的には https://[team名].slack.com/apps からHubotを検索して追加。このときに、API Tokenが付与されるのでそれをメモっときます。

Hubot側は、Yeomanで作成したテンプレを起動する際に、環境変数を定義しておけばOK。

$ yo hubot 
... ウィザードにしたがって adapterを slackを選択
$ export HUBOT_SLACK_TOKEN=xoxb-xxxxxxxxxx   ←上記のSlackの画面でメモった値
$ bin/hubot --adapter slack

これでOKです。問い合わせてみるとこんな感じ。

01.png

httpモジュールでPOSTする

robot.respond /hoge/i, (res) ->
  url = "https://script.google.com/xxxx"
  res.http(url)
    .query(param1: "value1")
    .post() (error, response, body) ->
      res.send body

https://github.com/technoweenie/node-scoped-http-client これが使われているっぽい。

requestモジュールでPOSTする

request = require 'request'

url = "https://script.google.com/xxxx"
options =
  url: url
  method: "POST"
  timeout: 2000
  followAllRedirects: true
  form:{"param1": "value1"}

request options, (error, response, body) ->
  console.log response.statusCode
  console.log response.headers.location
  res.send body

GitHubソースをDockerで動かすコードサンプル

# cat Dockerfile
FROM node
MAINTAINER masatomix

RUN npm install -g yo generator-hubot
RUN npm list -g yo generator-hubot
RUN useradd bot
RUN mkdir /home/bot && chown bot:bot /home/bot

USER bot
WORKDIR /home/bot

RUN git clone https://github.com/masatomix/family-stock-bot.git
RUN cd family-stock-bot  && npm install
WORKDIR /home/bot/family-stock-bot
CMD ["bin/hubot", "--adapter", "slack"]

これで上記のGitHubに上がってるnodejs向けコードをDocker 内で起動できるイメージを作成できます。コマンドはこちら。

# docker build -t family-hubot .

作ったイメージを動かすコマンドはこちら

# docker run -it -v /etc/localtime:/etc/localtime:ro 
  -e "HUBOT_SLACK_TOKEN=xoxb-xxxxx" 
  -e NODE_CONFIG='{  "bot": { "gas_url": "https://script.google.com/macros/s/"  } }'  family-hubot
↑ 環境変数っぽいのはサンプル。ちゃんと入れないとこのコード動きません

なかのプログラムが使用したい環境変数は -e で渡せます。なかのプログラムをそのまま起動させっぱにしときたいときは、 Ctrl + p + q で終了させずに抜けます。

キャッシュを使わないでビルド

# docker build  --no-cache -t family-hubot .

この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Hubot / TIPS集

現在のアクセス:2834


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS