Reacjilator は Slack 用のボットで、ユーザからのリアクション絵文字(「リアク字」)に反応してそのリアクションのあったメッセージを翻訳します。たとえば英語のメッセージにたいして :flag-jp:
のリアク字がつけられると即時にそのメッセージの日本語の翻訳がスレッドに表示されます。
- api.slack.com/apps?new_app=1: でアプリを作成
- Event Subscription をオンにする。必要なイベントは
reaction_added
で Request URL はhttps://自前のサーバ.com/events
へポイントする - Bot user をオンにする。この際に適当な名前もつける
- OAuth & Permission から必要な Scopes を加える:
chat:write:bot
(chat.postMessage メソッドでボットからメッセージを送るためのパーミッション),reactions:read
(絵文字リアクションにアクセス)channels:read
(チャンネルの read アクセス)channels:history
(チャンネルメッセージへのアクセス)- ほかにも
mpim.history
などの*.history
スコープをオンにすると、DM などのプライベートメッセージでボットを動かすことができます。
まず .env_test
ファイルネームを .env
に書き換え、必要な認証キーなどの情報を入力してください。
SLACK_CLIENT_ID=
SLACK_CLIENT_SECRET=
SLACK_VERIFICATION_TOKEN=
SLACK_AUTH_TOKEN=
GOOGLE_PROJECT_ID=
GOOGLE_KEY=
Slack の認証キーなどは https://api.slack.com/apps/[YOUR_APP_ID]/general
の Basic Information から、 auth token は OAuth & Permissions から。
翻訳の API で使う、Google Cloud project ID と API も自前で準備してください。 cloud.google.com/translate/docs/getting-started
もしくは、下の Heroku ボタンを使って Heroku サーバにデプロイするのならば、.env
ファイルを使わず、フォームに入力することによってそのままでブロイ可能です。
Heroku にデプロイした場合、Slack アプリ設定ページの Event Subscription で入力する Request URLは https://the-name-you-picked.herokuapp.com/events
のようになります。