はじめに
Slackを使っていてひとつ、どうしても改善したいことがありました。
「emojiのスタンプを拡大して表示すること」です。
せっかくbotを作ったのでpythonを使ったSlackbotを経由させてスタンプを拡大させてみました。
環境
- Windows10 64bit
- Python 3.5.4
仕様
スタンプを押した後に、「拡大」と入力すると次のような感じでbotが拡大emojiを返すイメージ。
若干かっこ悪い。
SlackのemojilistからAPIを取得
まずslackAPIのTokenを取得。
取得方法はこちらのサイトを参考にしました。
Slackにログインした状態でここにアクセスできれば取得できるはずです。
自分のSlackチームにログインした状態で、
このサイトにアクセス。
Testerタブをクリック。
そうすると、Valueの部分にチーム名が表示されるはずです。
この状態でTest Methodをクリックすると、APIを取得できます。
中身
Slackbotの作成に関してはこちらの記事を参照。
Slackbot備忘録(1)
実際に今回追加したコードはこちら
my_mention.py
@listen_to('拡大')
def default_emoji(message):
import urllib
import json
url = '取得したurl'
html = urllib.request.urlopen(url)
jsonfile = json.loads(html.read().decode('utf-8'))
text = message.body['text']
#::を消す
title = text.replace(':', '')
#titleからさらに拡大を消す
title2 = title.replace('拡大', '')
telop = jsonfile['emoji'][title2]
message.send(telop)
取得したAPIからtextと一致するemoji配列を呼んでるイメージです。
一致させるためにtextから文字置換をしまくってます。
listen_toなので、botさんをチャンネルに招待しないと動かないので注意です。
python/Slackbot初心者なのでこんな方法しか思いつきませんでした。
もっとスマートに拡大できたらいいのですが、
ひとまず不満が解消されました。
参考
本当はやりたかったこと↓