Google Apps ScriptからSlackにメッセージを送信する

以前に投稿したGoogle Apps Scriptでメールを送信するに、お問い合わせの送信があった際にSlackの特定のチャンネルに通知されるようにしてみます。

設定方法

Slackへの通知の実装にIncoming Webhookを使用しますが、設定方法は以前記事を投稿していますので、詳しくはそちらを確認ください。

Incoming Webhookで作成したWebhook URLを使って、以前作成したGoogle Apps Scriptのコードを以下のように変更します。

function doPost(e) {
  // POSTした内容を取得
  var name = e.parameter.name;
  var mail = e.parameter.mail;
  var body = e.parameter.body;
 
  // スプレッドシートへの書き込み
  var spread = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = spread.getSheets()[0].getLastRow();
  spread.getSheets()[0].getRange((lastRow + 1), 1).setValue(name);
  spread.getSheets()[0].getRange((lastRow + 1), 2).setValue(mail);
  spread.getSheets()[0].getRange((lastRow + 1), 3).setValue(body);
 
  // 自動返信メールの送信
  sendAutoReply(mail, {
    name: name,
    body: body,
  });
 
  // Slackへの通知
  notifyToSlack({
    name: name,
    mail: mail,
    body: body,
  });
 
  // returnの設定
  var jsonData = {
    name: name,
    mail: mail,
    body: body,
    result: 'ok'
  }
  return ContentService.createTextOutput(JSON.stringify(jsonData))
    .setMimeType(ContentService.MimeType.JSON);
}

function sendAutoReply(mail, data) {
  var title = 'お問い合わせありがとうございます。';

  var body = '以下の内容でお問い合わせが送信されました。\n';
  body += 'お名前:' + data.name + '\n';
  body += 'お問い合わせ内容:\n';
  body += data.body + '\n';

  MailApp.sendEmail(mail, title, body);
}

function notifyToSlack(data) {
  var webhookUrl = 'WebhookのURL';

  var body = '以下の内容でお問い合わせがありました。\n';
  body += '名前:' + data.name + '\n';
  body += 'メールアドレス:' + data.mail + '\n';
  body += 'お問い合わせ内容:\n';
  body += data.body + '\n';

  var jsonData = {
    text: body
  };
  var options = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(jsonData)
  };
  UrlFetchApp.fetch(webhookUrl, options);
}

50行目にSlackのIncoming Webhookで作成したWebhook URLを追加してください。

コード変更後にデプロイを行い、お問い合わせフォーム内のウェブアプリURLを変更します。
お問い合わせフォームの送信を行い、その内容がSlackで通知されたらOKです。

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930