Help us understand the problem. What is going on with this article?

JavascriptでSlackbotにリアクションをさせよう

本記事はJavaScriptでSlackbotにリアクションさせる方法を紹介するものです。
リアクションする

Pythonでリアクションをさせる方法については「Slackbotにリアクションをさせる〜PythonでのBot開発〜」をお読みください。

Slackの絵文字リアクション機能について

Slackの機能で自分や他の人に投稿したコメントに対してマークをつけることができます。
リアクションのマークをつけることで相手に同意や反対の意思を示すことが可能です。

下記のように一つのコメントに対して複数のリアクションをすることも可能です。
昼はカレーかラーメンか

JavaScriptでSlackbotにリアクションをさせる方法

◆Botのリアクションの記述

JavaScriptでSlackbotにリアクションさせる場合の記述例は以下の通りです。

controller.hears(['ご機嫌いかが'], 'direct_message,direct_mention,mention', function(bot, message) {

    // nameに絵文字を指定する
    bot.api.reactions.add({
        timestamp: message.ts,
        channel: message.channel,
        name: 'smile',
    }, function(err, res) {
        if (err) {
            bot.botkit.log('Failed to add emoji reaction :(', err);
        }
    });
});

◆実行結果
リアクションする

このままだとかなり長いので関数化しておきましょう。

controller.hears(['ご機嫌いかが'], 'direct_message,direct_mention,mention', function(bot, message) {
    bot_react(bot, message, 'smile')
});

function bot_react(bot, message, emoji) {
    bot.api.reactions.add({
        timestamp: message.ts,
        channel: message.channel,
        name: emoji,
    }, function(err, res) {
        if (err) {
            bot.botkit.log('Failed to add emoji reaction :(', err);
        }
    });
}

1度に複数のリアクションをさせることも可能です。

controller.hears(['ご機嫌いかが'], 'direct_message,direct_mention,mention', function(bot, message) {
    bot_react(bot, message, 'smile')
    bot_react(bot, message, 'robot_face')
});

◆実行結果
リアクションを2つする

絵文字について

Slack絵文字の代替文字を指定します。
代替文字は以下の画面の下に表示されている「::」で囲まれている文字です。

リアクション一覧

Slack内から打つ場合は、「:スマイル:」など日本語での記述も可能ですが、Botにリアクションさせる場合はNGです。

◆この記述はエラーとなる

@respond_to('^ご機嫌いかが?$')
def question_1(message):
    # 日本語はNG
    message.react('スマイル')

以上、JavaScriptでBotのリアクションをさせる方法についてでした。

◆関連記事
SlackbotをJavaScriptで作成しよう
Slackbotにリアクションをさせる(Python)

miyabikno
SIer系業務7年、Web系業務を3年やってきたプログラミング系ブロガーです。 Pythonの記事をメインで書いています。
https://se.miyabikno-jobs.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away