久しぶりにSlack Botを作成 ~URL展開のunfurl~

f:id:peroon:20191106061319j:plain

動作を確認した環境

環境設定

Code

import os
import slack

slack_token = os.environ["SLACK_API_TOKEN"]

@slack.RTMClient.run_on(event='message')
def say_hello(**payload):
    data = payload['data']
    web_client = payload['web_client']
    rtm_client = payload['rtm_client']
    t = data.get('text', [])
    if t and t[-1]==':':
      t = t.replace(":", '')
      s = t.replace(' ', '+')
      alc_url = "https://eow.alc.co.jp/search?q=" + s
      web_client.chat_postMessage(
          channel="english",
          text = alc_url,
          unfurl_links = True,
          unfurl_media = True
      )

rtm_client = slack.RTMClient(token=slack_token)
rtm_client.start()

機能

  • Slack上で英単語+コロンを打つとそれを検索するAlcのURLを貼り付けてくれる
  • 自動で展開してくれる (unfurlという)

なぜ作ったか

  • Kindleなどで英語を読むとき、単語を検索したくなる
  • PCのブラウザでAlcを開いて検索してもいいが、履歴が残らないので復習しづらい
    • (Alc Proにして単語登録していけば復習できるが、クリックはしたくない。Alc Pro Liteだと検索履歴10件..)
  • コロンを打たなければ好きにメモすることもできるので、Slackから離れないですむ

熟語対応

f:id:peroon:20191106063107j:plain

2020/11/15

  • slack自体を今は使っていないのでこの機能も使っていないが、作れることはよいこと