9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

絵文字 / EmojiAdvent Calendar 2016

Day 4

愛される👼

Last updated at Posted at 2016-12-04

この記事は絵文字 / Emoji Advent Calendar 20164日目の記事です。

最初に謝らなくてはならないのですが、、

カレンダーの主旨を思いっきり間違えました\(^o^)/わほーい

始まってみりゃそりゃそうだって感じなのですが、私は完全に「自分の好きなemojiについて書く」カレンダーだと思っていたのです・・。

しかし新しくネタをこしらえる時間も技量もなく、穴をあけるのもあれなので自分の好きなemojiの話をします・・・。一応技術的な話なので許してください (´;ω;`)ブワッ

初めてのBotと👼

書いてる人はエンジニア暦の浅いペーペーのPHPerなのですが、少し前に初めてHubotでSlackBot作りに取り組みました。

その名もgodくん。
スクリーンショット 2016-12-04 15.39.06.png

MTGの書記と進行を神の采配で決めてくれるという意味で 適当に 名付けたのですが、練習で色々なクソ機能をつけた&実装が穴だらけゆえ社内の方にはかわいがってもらえたようです\(^o^)/

機能1.ズンドコする

スクリーンショット 2016-12-04 13.16.04.png メイン機能の抽選。 Herokuで動かしていたので、RedisにMTGメンバーのSlackIDと書記・進行回数を保持して数が偏りすぎないよう適当に抽選してくれます。(コンプラがあれなのでテスト画面ですが、実稼働してました)

Botにメンションさせる時、@名前 と文字列で指定すると -_. などが含まれていた時にうまくメンションしてくれない問題があったので、UserIDを取りに行く実装になっています。

    // slackのAPIからユーザリストを取得
    url = "https://slack.com/api/users.list?token=#{process.env.SLACK_API_TOKEN}"
    id_list = {}
    request = require("request")
    request url: url, (err, response, body) ->
      data = JSON.parse(body)

      if data["ok"] == true
             
            ・・・

            // msg.send "<@#{取得したuser_id}>さん"という形でメンションできる

機能2.飲みたい気持ちを盛り上げる

module.exports = (robot) ->
  robot.hear /^.*(酒)+.*$/, (msg) ->
    message = [
      "(`Д((:beer:(◕ω◕`*)oオラオラ",
      "飲みすぎ注意;´・Д・`p《 心 配 》q",
      "Ʊ”-ʓ(っ´ω`)っ :beers: ⊂(´ω`⊂ )Ʊ”-ʓ",
    ]
    selected = msg.random(message)
    msg.reply "#{selected}"

会話の中に「酒」というワードを発見すると、ランダムで酒を発射してくれます。
さっさと仕事終わらせて飲みに行こうぜ!という雰囲気促進になりますね!(?

機能3.ねぎらう

スクリーンショット 2016-12-04 15.53.45.png

疲れてる人を癒してくれます。
こちらもランダムメッセージを誰彼構わず発射するので、社長を積極的に殴りに行く事案などが発生しました。

スクリーンショット 2016-12-04 15.54.52.png

適当なセットアップと実装

実行環境はHubot+Heroku+Coffee.Scriptでした。
主旨とは外れるのでザックリですが、とりあえず動かすところまではごくごく簡単なはず!

npm install -g yo generator-hubot
npm install -g coffee-script
プロジェクト作成
// hubotを作るディレクトリ以下に移動
yo hubot

Procfileの中身を書き換える

web: bin/hubot --adapter slack

ローカルでは\bin\hubotで実行できます。

herokuでは以下の環境変数あたりを設定してあげるとサクッと動かせます。

HEROKU_URL
HUBOT_HEROKU_WAKEUP_TIME
HUBOT_HEROKU_SLEEP_TIME
HUBOT_SLACK_TOKEN
SLACK_API_TOKEN
HUBOT_SLACK_TEAM
HUBOT_SLACK_BOTNAME

おまけ

👼のemojiめっちゃ愛らしいと思ってたのですが、OSによっては全然かわいくないことに気がつき愕然としました。
スクリーンショット 2016-12-04 16.02.14.png
iOSだと目がマジで怖い。

みなさんも愛される👼をSlackに飼いましょう\(^o^)/

明日は@nownabeさんの🐟です!
よろしくお願いします!!

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?