#はじめに
- グループの緊急連絡網の手段をメール→slackに移行を試みようと思ったのですが一部slackの導入ができない人もいたため、メール対応も残しておく必要がありました。
- ただ、slackに投降する作業とメール送信作業を別々に行うのがめんどくさかったたため、slack上から同時に行えるようしました。
#スラッシュコマンド作成の流れ
- Slash CommandsとGASでSlackのオリジナルコマンドをつくるを参考にさせていただいきました、大変わかりやすくかったです。
- 本ページでは重複する部分を一部省かせていただいております。
#今回作るもの
-
/emergency-mail [メール内容]
を入力すると[メール内容]をタイムラインに投降しつつ、登録メールアドレスに送信する仕組みです。
- 送信するとslack/メールにはそれぞれ下記のように配信されます。
#コマンドの作成
##GASのプロジェクトを作成する
- https://script.google.com を開いてみましょう。
- Googleアカウントにログインしている状態であれば、新規のプロジェクトがつくられるはずです。
- 画面上にエディターが表示されます。ソースは下記のようにしました。
コード.gs
function send_A_mail(user, memo) {
var to="*******@yahoo.co.jp,*******@gmail.com"; // 送信先メールアドレスはカンマでつなぐ
var from="*******@gmail.com"; // 送信者メールアドレス(作成者のgmailアドレスを入力)
var sender=user; // 送信者名
var subject="テスト配信_緊急連絡網(slackから転送)"; // 件名
var body="テスト配信_緊急連絡網(slackから転送)になります。\n"
+ "---------------\n"
+ memo + "\n"
+ "---------------\n"
+ "詳細はslackにてご確認ください。https://********.slack.com/ \n"
+ "メールで回答する場合は右記に返信ください。 ************@gmail.com"
GmailApp.sendEmail(to, subject, body, {from: from, name: sender});
}
function doPost(e) {
var user = e.parameter.user_name;
var memo = e.parameter.text;
var response = { "text" : "---以下転送内容でメール送信を行いました---\n","response_type" : "in_channel" };//
var verificationToken = e.parameter.token;
if (verificationToken != '***********') {
throw new Error('Invalid token');
}
send_A_mail(user, memo);
response.text = "テスト配信_緊急連絡網です。\n" + memo
return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}
- GmailApp.sendEmailの使い方は次を参照ください。https://developers.google.com/apps-script/reference/mail/mail-app
- スラッシュコマンドのパラメータは次を参照ください。https://api.slack.com/interactivity/slash-commands#app_command_handling
-
"response_type" : "in_channel"
を指定することでslackのタイムラインにも表示されます。指定しないと送信者にのみ表示になってしまいます。 - 入力が終わったら、メニューの「公開」=>「ウェブ アプリケーションとして導入...」のように進みます。
- 3つ目のアプリケーションにアクセスできるユーザーを全員(匿名ユーザーも含む)またはAnyone,even anonymousに忘れずに変更しましょう。
- スラッシュコマンドを実行して“http_client_error”が返ってきたときはここを疑いましょう。
- また、ソース内容を更新した時には2つ目のProject version は必ずNewを選びましょう。
- 「導入」or「更新」を押せば終了を押す。
- 外部サービスへの接続の許可を聞かれるので 「詳細」 → 「プロジェクト名(安全ではないページ)に移動」とクリックして「許可」する。もう一度「許可」をクリックしてOK。
- 下記画面が表示されるので Current as web app URL をメモしておく。
##Slack Appをつくる
- まずは https://api.slack.com/apps にアクセスしましょう。
- その後の流れはSlash CommandsとGASでSlackのオリジナルコマンドをつくると同じ流れで作成できます。
- スラッシュコマンドができたらbotも作ってあげましょう。下図Bots → edit と進めば作成できます。
- せっかくなので下記リンク先からアイコンを作成し、アプリにもアイコンをつけてあげました。
- http://generator.tubudeco.com/g1606/
- これで完成となります。
#終わりに
- 意外とサクッとつくれたので、slackとメールの併用が必要になったときの参考にどうぞ。