Slackbotには会話をさせるだけでなく以下のようにリアクションをさせることも可能です。
リアクションする

今回はリアクションをする方法について説明していきたいと思います。

PythonでのSlackbot作成の基本については「SlackbotをPythonで作成しよう」をお読みください。

◆関連記事
JavaScriptでSlackbotにリアクションをさせよう

Slackのリアクション機能とは?

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

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

Slackbotにリアクションをさせてみよう

Botに応答させる場合は、「reply」のメソッドを使用していました。

◆Botの応答の記述

@respond_to(‘^ご機嫌いかが?$’)
def question_1(message):
message.reply(‘元気です!’)

Botにリアクションさせる処理を加える場合は「reply」メソッドを「react」に置き換えるだけです。

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

@respond_to(‘^ご機嫌いかが?$’)
def question_1(message):
message.react(‘smile’)

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

「react」の引数にはSlack絵文字の代替文字を指定します。
代替文字は以下の画面の下に表示されている「::」で囲まれている文字です。
リアクション一覧

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

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

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

Slackbotのリアクションのバリエーション

Slackbotのリアクションのバリエーションについて紹介します。

複数のリアクションする

応答の処理を並べることで複数のリアクションをすることも可能です。

◆記述方法

@respond_to(‘^今日の昼ご飯はカレーでいい?$’)
def question_2(message):
message.react(‘bangbang’)
message.react(‘thinking_face’)
message.react(‘woman-gesturing-no’)

◆実行結果
複数のリアクションをつける

聞いた言葉によってリアクションを変える

判定文を追加することで聞いた言葉によってリアクションを変えることもできます。

◆記述方法

@respond_to(‘^今日の昼ご飯は(カレー|ラーメン)でいい?$’)
def question_4(message, group):
if group == ‘ラーメン’:
message.react(‘ok_hand’)
else:
message.react(‘bangbang’)
message.react(‘thinking_face’)
message.react(‘woman-gesturing-no’)

◆実行結果
a

以上、Botのリアクションについてでした。

SlackbotまとめTOP>>Slackbotの作り方マニュアル〜Python編〜