Skip to content

Slack翻訳ツール。Translation bot that responds to Emoji Reactions in Slack.

Notifications You must be signed in to change notification settings

HoshikawaHikari/SlackTranslator_GAS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 

Repository files navigation

SlackTranslator_GAS

English (by Google Translate)

Slackでリアクションに対して反応する翻訳ボット。

Introduction

  • Adout
    Slackのメッセージに特定の絵文字のリアクションがついたことを検知して動作するSlackの翻訳ボットです。 EN2zpzLUwAEuCIr EN2udLuUYAAHCmr

Google Apps Script (GAS) を使用するので、無料で最大1日1万回の実行が可能です。
※同じGoogleアカウントの他のGASでURLFetchが使われておらず、パーマリンク等を使用しない設定の場合の最大数。

  • Installation
    導入手順は Installation を参考にして下さい。

  • Customization
    カスタム方法は Source code custom を参考にして下さい。

Prerequisites

  • Googleアカウントを持っていること。
  • Slackにアプリを追加する権限があること。

Installation

手順としては以下の4つです。

  1. SlackAppの作成と設定
  2. GASの作成と公開
  3. GASのURLをSlackAppに設定
  4. Slackに絵文字追加

1. Create Slack App

まず SlackApp の作成と設定です。
新規SlackAppにイベントの設定と権限スコープの設定をしてワークスペースにインストールします。

  1. [Create New App] ボタンを押してSlackAppを新規作成します。

  2. [Event Subscriptions] をONにして [Subscribe to workspace events] に "reaction_added" を追加します。 2020-02-13 19 19 11 api slack com 42e445c05fcd

  3. [OAuth & Permissions] > [Scopes] > [Bot Token Scopes] に必要なスコープを追加します。
    最低限必要なものは "reactions:read", "channels:history", "chat:write" です。 2020-02-13 19 59 34 api slack com fb55921afb42

  4. [OAuth & Permissions] > [OAuth Tokens & Redirect URLs] 項目の [Install App to WorkSpace] ボタンを押してワークスペースにインストールします。

  5. インストールしたら OAuth Access Token が表示されるのでGAS側で使う為に控えておきます。

  6. お好みでアイコン等を設定します。

2. Create Google Apps Script

GAS側の設定を行います。
新規GASにSlackTranslator.gsをコピペしてTOKENだけ書き換えてウェブアプリケーションとして公開するだけです。

  1. GoogleドライブでGoogleAppScriptを新規作成します。(見当たらない場合は [+アプリを追加] から探す) gas_01

  2. リポジトリの "GAS" ディレクトリに入っている SlackTranslator.gs の中身をコピペします。

  3. ソースコード内の TOKEN = xoxp-... の部分を、控えておいた OAuth Access Token に差し替えます。

  4. メニューの[公開] > [ウェブアプリケーションとして導入] ボタン押してデプロイします。

    • [Execute the app as:] は "Me(example@gmail.com)" を選択します。
    • [Who has access to the app:] は "Anyone, even anonymous" を選択します。
    • [導入] ボタンを押してデプロイします。
  5. デプロイ後に表示されるURLをSlackApp側に設定するので控えておきます。

3. Slack App URL settings

SlackApp側にイベント通知先を設定します。

  1. [Event Subscriptions] の [Request URL] に GAS側で控えておいたURLを設定します。

4. Slack Emoji settings

Slackに翻訳用の絵文字を追加します。

  1. リポジトリの "Resource" ディレクトリに入っている "en.png" を :en: としてSlackに絵文字追加します。

  2. リポジトリの "Resource" ディレクトリに入っている "jp.png" を :jp: としてSlackに絵文字追加します。

※ 画像は好きなものを使っていただいて構いませんが、:en:, :jp: は変えないで下さい。

Source code custom

TOKEN

ソースコードのTOKENにはSlackAppで発行されたトークンを代入して下さい。
var TOKEN = "xoxp-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

Message Quote

ソースコードのQUOTEフラグを変更することで、翻訳後のメッセージに翻訳前の文章を引用することができます。
また、引用方法の設定ができます。

  • var QUOTE = true;
    image

  • var REF_QUOTE = true;
    image

  • var REF_QUOTE_HIDE_URL = true;
    image

  • var REF_QUOTE_UNFURL = true;
    image

Add translate target languages

翻訳させる言語の変更や追加を行いたい場合は、getTranslateCode() 関数の中を変更して下さい。

Reference

https://qiita.com/hotpepsi/items/3862618b38b463d37b53

https://www.slideshare.net/tomomi/japanese-developing-a-bot-for-your-workspace-82133038

https://nju33.com/note/post?note=slack&post=特定のメッセージを取得

About

Slack翻訳ツール。Translation bot that responds to Emoji Reactions in Slack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published