Last active
May 9, 2021 14:22
-
-
Save aibax/c0fd6449cd93ab376c671dd47285a006 to your computer and use it in GitHub Desktop.
Google Form を使用した Slack の自動招待フォーム用 Google Apps Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* [SETUP] | |
* 1. Slack のAPIトークンを発行する | |
* 2. Google Form でフォームを作成する | |
* - 必要な項目はメールアドレスのみ | |
* - Google Form で指定したメールアドレスの項目名を FORM_ITEM_TITLE に設定する | |
* 3. スクリプトエディタでこのスクリプトを登録 | |
* - SLACK_API_TOKEN にAPIトークンを指定 | |
* - SLACK_API_ENDPOINT にチーム名を指定 | |
* 4. フォームの送信時のトリガーに onFormSubmit を指定(要認証) | |
*/ | |
/* Googleフォームで作成したメールアドレスの入力項目名 */ | |
var FORM_ITEM_TITLE = "メールアドレス"; | |
/* SlackのAPIトークン */ | |
//TODO: https://api.slack.com/web の Test token generator からAPIトークンを発行 | |
var SLACK_API_TOKEN = "YOUR_SLACK_API_TOKEN"; | |
/* Slackのユーザー招待のエンドポイントURL */ | |
//TODO: YOURTEAM をあなたのチーム名に変更 | |
var SLACK_API_ENDPOINT = "https://YOURTEAM.slack.com/api/users.admin.invite"; | |
function onFormSubmit(e) { | |
var itemResponses = e.response.getItemResponses(); | |
for (var i = 0; i < itemResponses.length; i++) { | |
var itemResponse = itemResponses[i]; | |
if (itemResponse.getItem().getTitle() == FORM_ITEM_TITLE) { | |
var email = itemResponse.getResponse(); | |
inviteToSlackTeam(email); | |
} | |
} | |
} | |
function inviteToSlackTeam(email) { | |
Logger.log("Invite user. (email = '%s')", email); | |
var query = "email=" + encodeURIComponent(email) + "&token=" + SLACK_API_TOKEN + "&set_active=true"; | |
var parameters = { | |
method : "post", | |
payload : query | |
}; | |
var response = UrlFetchApp.fetch(SLACK_API_ENDPOINT, parameters); | |
Logger.log("Result : %s", response.getContentText()); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment