日記

slack用の翻訳アプリをgasで作る

久々の投稿です。

職場にバングラ人がいて、slackを導入しているのでこりゃ作るしかないと思ったのでつくりますまる

スプレッドシートを作って、スクリプトエディタをひらきます。

function postSlack(text){
  var url = "https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxx";
  var options = {
    "method" : "POST",
    "headers": {"Content-type": "application/json"},
    "payload" : '{"text":"' + text + '"}'
  };
  UrlFetchApp.fetch(url, options);
}

function doPost(e) {
  var message = "こんにちは " + e.parameter.user_name + "さん";
  var message2 = e.parameter.text;
  var Sheet = SpreadsheetApp.getActiveSheet();
  Sheet.getRange("A3").setValue(message2);
  var trancelateJa = Sheet.getRange("A2").getValue();
  var trancelateEn = Sheet.getRange("B2").getValue();
  var trancelateBg = Sheet.getRange("C2").getValue();
  postSlack(trancelateJa + "\n" + trancelateEn + "\n" + trancelateBg);
}

レイアウト適当ですがA3が生データ B3が起動語を抜いたもの
上3つがB3の翻訳結果です。

A2
=googletranslate(B3,"ja","en")

B3
=SUBSTITUTE(A3,"[trancelate]","")

 関数はこれだけっす。翻訳の関数があるのがgoogleスプレッドシートの大きな利点。
gasの方は
・メッセージを取得
・セルに書き込む
・セルからデータを取得してslack送信
そんだけ。
アプリケーションとして公開する必要があります。
権限許可も必要です。びびりながらやってください。

slackの設定

Slack botGASでつくる方法で一番楽そうなやつ

https://vaaaaaanquish.hatenablog.com/entry/2017/09/27/184352

上記の記事の設定をしていくといいです。
おわりっす。
起動語は[tlancslate]にしたけど、普通にユーザー@がいいかも。
スプレッドシートで起動語削除処理がありますが、これを忘れると処理がループするので注意。

こちらの記事もおすすめ!