LoginSignup
17
13

More than 5 years have passed since last update.

Slackで特定の文字列に対してbotにEmojiリアクションさせる

Last updated at Posted at 2016-02-29

概要

WEB+DB PRESS Vol.91のBotkit特集を読んだところ、Botkitを使うと特定の文字列に対してbotが絵文字でリアクションする「Emojiリアクション」が簡単に設定できるようなので試してみました。

ビールが含まれる投稿に対して:beers:を付ける

開発環境の構築方法やbotのEmojiリアクションの設定方法等はWEB+DB PRESSの特集を読み参考にしました。

import Botkit from 'botkit'

const ctrl = Botkit.slackbot({
  debug: false
});
const bot = ctrl.spawn({
  token: process.env.token
}).startRTM();

ctrl.hears(
  ['beer', 'ビール'], ['ambient'],
  (bot, message) => {
    bot.api.reactions.add({
      timestamp: message.ts,
      channel: message.channel,
      name: 'beers',
    }, (err, res) => {
      if (err) {
        bot.log("Failed to add emoji reaction", err);
      }
    });
  }
);

結果

4f33031c6308420614c702ec8d4ab9aa.png

Botkitおもしろい

hears関数の第2引数について

WEB+DB PRESSのサンプルコードで紹介されているhears関数の第2引数へのbotに反応して欲しい呼びかけの種類の渡し方では上手く動きませんでした。botkitのリポジトリを参考に以下のように修正したところ上手く動きました。

修正前
'direct_message, direct_mention, mention'
修正後
['direct_message', 'direct_mention', 'mention']

参考

17
13
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
17
13