LoginSignup
24
19

More than 5 years have passed since last update.

Slackに翻訳botを足す

Posted at

運用しているSlack (競技プログラミングSlack) に海外の方が入ってきたので、翻訳botを足してみた。
国旗のリアクションで、スレッドに翻訳してくれる。
translate_bot.png

いくつかの記事を読んでみたところ、何点か変えたいところがあったので自作してみた。

  • botに聞く形ではなく、国旗のリアクションで翻訳してほしい
  • スレッドに返信してほしい
  • できれば無料で

ということで以下の流れで作成した。

  • Google Apps Script(GAS)を新規作成
  • GASのPublish -> Deploy as web appで、GASを外部から叩けるようにする
  • リアクションを取るためにSlack Appを作る
  • Event Subscriptionsに reaction_added を追加し、Request URLにGASのURLを入力して保存する
  • OAuth & Permissionsで reactions:read chat:write:bot channels:history を追加する
  • Slackアプリを自分のワークスペースにインストールする

無料で翻訳するために、GASの LanguageApp を使った。
ということで、できたGASはこれ
https://github.com/firewood/test/blob/master/compprog-translator.js

どうやらreaction_addedは複数回呼ばれることがあるようなので、 conversations.replies でスレッドの内容を取得して、同じ国旗の翻訳がすでにあるかどうかチェックして、なかったら投稿するようにしてみた。(ただし10件しか確認していないので、すでにスレッドに10件以上投稿されているとそのまま足されてしまう)

会社のSlackに同様のbotがあるのだが、たぶん普通に有料のGoogle Translate APIを使っていると思われるので、実装は見なかった。(会社のものはスレッドの文章が翻訳できるなど、もう少し機能が充実している)

GASを使うのが初めてだったので、バージョンを上げてdeployしないと更新されないことにはまった。

参考にした資料
- [Japanese] Developing a bot for your workspace 翻訳ボットを作る! (GitHub: https://github.com/slackapi/reacjilator)
- aws chaliceを使ってslackの翻訳botを作ってみた #aws #chalice #slack #bot - uchimanajet7のメモ
- https://qiita.com/zakiyamaaaaa/items/4873ba51646bda84d6ca

24
19
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
24
19