■目次

【前提】Slackの管理者権限 + Googleフォームの編集権限を追加する

自身が編集権限を既に持っている場合はスルーしてOK

管理者が他にいて、まだ編集権限を持っていない場合は、管理者に依頼して権限を付与してもらう。

キャプチャのみだが以下も参考になる

Googleフォーム投稿をSlackに通知する方法【画像で解説】

Slackに通知で使うアプリを追加する

  1. Slackを開き、「チャンネルを追加する」から、通知を受け取りたいチャンネルを作成する

    既に用意している場合は2. に進む

  2. サイドバー上部にある「その他」から「App」を選択

    スクリーンショット 2022-09-12 14.44.25.png

  3. 検索窓に「Incoming Webhook」と入力し、Incoming WebHooksを選択する

    スクリーンショット 2022-09-12 14.45.40.png

  4. 遷移したページにある「Slackに追加」ボタンをクリック

  5. 「チャンネルへの投稿」画面にて、通知を受け取りたいチャンネルを選択し、「Incoming Webhook インテグレーションの追加」ボタンをクリック

    スクリーンショット 2022-09-12 14.52.45.png

  6. これでアプリの追加は完了!遷移ページにある**「Webhook URL」**は後ほどGoogleフォームとの連携で使うのでメモしておくか、遷移ページをそのまま残しておく

    画像引用:https://goworkship.com/magazine/slack-usage-3/

    画像引用:https://goworkship.com/magazine/slack-usage-3/

GoogleフォームとSlackをGAS(Google Apps Script)で連携する

  1. Googleフォームを開き、右上の点3つアイコンから「<>スクリプトエディタ」をクリック

  2. 初期状態でもコードが入っている。自分達で追加したもの以外は全て削除し、以下を貼り付ける

    function onFormSubmit(event) {
    
    	// 投稿者がログインしているGoogleメールアドレスが許可されていれば、表示する
    	
    	var message = "投稿者: " + event.response.getRespondentEmail() + "\\n";
    	
    	var items = event.response.getItemResponses();
    	
    	for (var i = 0; i < items.length; i++) {
    	
    	message += items[i].getItem().getTitle() + ": " + items[i].getResponse() + "\\n";
    	
    	}
    	
    	UrlFetchApp.fetch(
    
    			// Webhook URLを入れる
    			
    			"<https://hooks.slack.com/services/AAAAAAAA/BBBBBBBBB/CCCCCCCC>",
    			
    			{
    			
    			"method" : "POST",
    			
    			"contentType" : "application/json",
    			
    			"payload" : JSON.stringify({"text": message})
    			
    			}
    		
    	);
    
    }
    

スクリプトを自分仕様に修正する

  1. 「//Webhook URLを入れる」というコメント下のURLを、先ほどメモしたWebhook URLに差し替える

    これで通知するSlackのチャンネルを指定できる