1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

google formの回答をslackに送信して行う鍵の管理【実装編】

Last updated at Posted at 2023-05-02

はじめに

鍵の管理をgoogle formとslackを使って簡単にできるようにしました。コードをコピペして簡単に実装できます。
デモは以下のリンクから見てください。

構想

研究室で鍵の状態を学生間で共有するためにslackを活用することになりました。しかし、毎回slackに時間と借りた部屋の鍵を入力するのが面倒でした。
Screenshot 2023-05-02 at 13.18.21.jpg
個人情報のため一部伏せていますがこんな状態です。

送信すべき情報は、

・誰なのか
・手続きを行った時刻
・該当する部屋の番号
・鍵の状態

と決まっていたため、これらを取得して送信できるようにgoogle formを利用しました。
google formであれば、ボタンで選択することができるため、入力するより簡単に送信できます。

google formからslackへの送信するのはGoogle Apps Scriptを利用しました。

準備

まずgoogle formからslackへメッセージ送信できるようにします。
以下のサイトを参考に準備しました。

コード

以下のコードは先程の準備が完了していたら、コピペして使えます。

・回答者のメールアドレス
・回答した時間
・フォームの内容

これらが送信されるようになっています。

function onFormSubmit(event) {
  // Googleフォームの回答者のメールアドレスを取得
  var message = "<!everyone> " + event.response.getRespondentEmail() + "\n";
  
  // 回答のタイムスタンプを取得して、Slackに送信するメッセージに追加する
  var timestamp = event.response.getTimestamp();
  var date = new Date(timestamp);
  var formattedDate = Utilities.formatDate(date, "JST", "yyyy/MM/dd HH:mm:ss" + "\n");
  message += "時間: " + formattedDate;

  // 回答の内容を取得して、Slackに送信するメッセージに追加する
  var items = event.response.getItemResponses();
  for (var i = 0; i < items.length; i++) {
    message += items[i].getItem().getTitle() + ": " + items[i].getResponse() + "\n";
  }

  // SlackのWebhook URLにPOSTリクエストを送信する
  UrlFetchApp.fetch(
    "webhookのURLを記入", // Webhook URLを入れる
    {
      "method" : "POST",
      "contentType" : "application/json",
      "payload" : JSON.stringify({"text": message})
    }
  );
}

webhookのURLだけは自分のものに置き換えてください。

おわりに

Google Apps Scriptで簡単にgoogle formとslackを接続して行うことができました。ぜひ活用してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?