フォーム回答時にDiscord通知
- 2022.01.08
- GoogleAppsScript
- spreadsheet
前の記事「メンバー管理シートとフォームの連携」までできてる前提ですすめる
連携済なのでメンバー管理シートをコピーするだけでGASもフォームもコピーされそうだけど、連携はやり直さないと使えないかも?しくみがわかればやりやすいと思うので見てみてください。
目次
フォーム回答時にwebhookを使ってDiscordに通知を送るGAS
1.メンバー管理シートの 拡張機能>Apps Script を開く

先の記事で作ったプロジェクトが開くので、ここに追加していく。
ファイルの横にある+マークを押して、スクリプトを選択。
名前はなんでもいいけど、通知用だよってわかるとよさそう。
2.追加したgsを編集
埋め込みにもできるけど、アンケート回答が複数回予想されるので今回は普通のテキストで通知する。
function onSubmit(e) {
// ① DiscordのウェブフックURLを設定
const webhookURL = '●●●●●●●●';
// Discordに表示する文章.
let messageBody = '';
// ② フォームの内容に応じて変える
messageBody += `${e.namedValues['Name'][0]}`;
messageBody += `さんの情報を更新しました(`;
messageBody += `${e.namedValues['タイムスタンプ'][0]}`;
messageBody += `)\n`;
messageBody += `> ---------- \n`;
messageBody += `> 【Combat Power】`;
messageBody += `${e.namedValues['Combat Power'][0]}\n`;
messageBody += `> ---------- \n`;
messageBody += `\n`;
const message = {
'content': messageBody,
'tts': false,
}
const param = {
'method': 'POST',
'headers': { 'Content-type': 'application/json' },
'payload': JSON.stringify(message)
}
UrlFetchApp.fetch(webhookURL, param);
}①:DiscordのウェブフックURLを設定
- Discordのサーバー設定 > アプリ 連携サービス から ウェブフック を作成
- 通知を送るチャンネルを選択して、表示名やプロフィールイメージを設定しておく
- 作成したウェブフックURLをコピーしてここに貼り付ける
② フォームの内容に応じて変える
- 表示させる内容はフォームの必須項目にするとよい
- 行を追加したり内容を追加したりお好みでどうぞ
3.トリガーを設定する

トリガーを開いて、右下にある

を押す

- 実行する関数を選択:
今回作ったGASの名前になってればok - 実行するデプロイを選択:
Head(変更しない) - イベントのソースを選択:
スプレッドシートから - イベントの種類を選択:
フォーム送信時
に設定して、保存を押す。
4.テスト送信
試しにフォームを送信してみて、通知が来ればできあがりー
