管理しているdiscordサーバ上のメンバーが抱えている改善点や問題等を拾うために、 問い合わせフォームを作成したので、その設定等の備忘録。
やりたいこと
- 基本的に匿名で問い合わせできること
- 問い合わせを後から整理・確認ができること
- 問い合わせ内容をdiscord内で確認ができること
- 問い合わせ内容は、管理者だけが確認できること
利用するもの
設定手順
1. 問い合わせフォーム作成
以下のサイトにアクセスする。 https://www.google.com/intl/ja_jp/forms/about/
「googleフォームを使ってみる」を選択。
「新しいフォームを作成」から「空白」を選択。
今回はこんな感じでつくりました。
匿名で問い合わせできるように、フォームの設定で「メールアドレスを収集する」のチェックボックスを外します。(おそらくデフォルトで外れているはず)
問い合わせフォーム作成はこれで完了
2. webhook取得
予め「管理者」のロールを作成しておきます。
discordに、プライベートチャンネルとしてテキストチャンネルを作成します。
その際、チャンネルにアクセスできるロールとして、作成しておいた「管理者」のロールを選択しておきます。
作成したチャンネルの設定を開き、「ウェブフック」を選択。
「ウェブフックを作成」を選択します。
「名前」「画像」を適宜設定します。
今回は、通知することだけが目的なので、「画像」は特に設定せずに、「名前」を”通知”にしました。
ウェブフックURLをコピーし、後で使うのでテキストファイル等にメモしておきます。
「保存」をクリックして設定完了。
3. 送信スクリプト作成
作成した問い合わせフォームに戻ります。
「回答」タブをクリックし、四角い緑のマークをクリックしスプレッドシートと連携させます。
連携させたスプレッドシートのメニューから「ツール > スクリプトエディタ」を選択。
以下の内容を記載する。
※「your_webhook」を取得したwebhookに変更すること。
function send_discord(e) { var webhook = "your_webhook"; var item = e.values[1]; var user_name = e.values[2]; var occurrence_time = e.values[3]; var contact = e.values[4]; if(!user_name){ user_name = "匿名" } if(!occurrence_time){ occurrence_time = "なし" } var send_msg = ''; send_msg += '問い合わせが届きました。\n'; send_msg += '=======================\n'; send_msg += '●項目: '+item+'\n'; send_msg += '●問い合わせ者: '+user_name+'\n'; send_msg += '●発生日時: '+occurrence_time+'\n'; send_msg += '【問い合わせ内容】\n'; send_msg += contact+'\n'; send_msg += '=======================\n'; var json_data = { username: "通知", content: send_msg } var payload = JSON.stringify(json_data); var options = { "method" : "post", "contentType" : "application/json", "payload" : payload }; UrlFetchApp.fetch(webhook, options); }
次に、このスクリプトが動作するトリガーを設定する。
スクリプトエディタのメニュー下にある、時計のようなマークを選択。
遷移した先のページにて、「トリガーを追加」を選択。
以下の内容で設定。「イベントの種類を選択」で「フォーム送信時」を選択することで、
メンバーが問い合わせしたタイミングでスクリプトが動作する。
これで完成!!
フォームの共有
問い合わせフォーム作成画面の右上にある「送信」を選択。
送信方法を選択できるので、リンクのタブを選択。
「URLを短縮」にチェックを付ける。このURLをdiscordサーバ上で適宜共有する。
テスト
問い合わせするとこんな感じで届きます。
特にこだわる必要性がなかったので、とてもシンプルなものにしました。
もっとwebhookでいろんなことがしたい場合は、以下の記事を参考にしてみてください。
DiscordにWebhookでいろいろ投稿する