connpass-notification
connpass-notification copied to clipboard
Notify to slack for connpass events from participant via gmail.
connpass-notification
connpassを使用したイベント主催者向けのツールです。
connpass で自分が立てたイベントに対して参加・キャンセル・お問い合わせについてGmailが来た時にSlackに通知するツールです。
Deploy
connpass-notification でSlackに通知するためのステップは下記のとおりです。
First
clasp + typescriptを使って開発をしています。
claspのインストールは必須です。loginまで終わらせましょう
Second
自分の都合の良いディレクトリで下記のコマンドを実行していきます。
$ git clone [email protected]:bannzai/connpass-notification.git
$ cd connpass-notification
$ clasp create --type standalone --rootDir ./src
$ vim ./src/settigs.ts # See: #Configure https://github.com/bannzai/connpass-notification#Configure
$ clasp push # Deploy to your Google Apps Script Editor
Configure
下記の項目を変更すれば使えるようになります。
./src/settings.ts
function settings(): _Settings {
return {
'appName': 'Gmail',
'searchWord': 'from: [email protected]',
'registerWebHookURL': 'https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ',
'registerNotificationChannel': '#registerOrCancel-channel',
'cancelWebHookURL': 'https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ',
'cancelNotificationChannel': '#registerOrCancel-channel',
'contactWebHookURL': 'https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ',
'contactNotificationChannel': '#contact-channel'
}
}
appNameにはSlackで通知される時に表示されてほしいユーザー名を入れてください。searchWordsには実際にGmailで検索をかけるキーワードを入れてください。xxxxWebHookURLにはSlackのIncoming-WebHooksで作成したURLを入れてください。xxxxNotificationChannelにはSlackのIncoming-WebHooksで設定した channel を入れてください。#から始める必要があります。
Environment
connpass-notification を開発した時の諸々のバージョンです。
| Environment | Command | Result | Require |
|---|---|---|---|
| node | node --version | v8.12.0 | yes |
| clasp | clasp --version | 2.0.1 | yes |
| tsc | tsc -v | Version 3.3.3333 | no |
Tips
このツールのentrypointは main.tsの main という関数です。
Googleが提供しているGoogle Apps Script(GAS) の開発環境から動作を確認ができます。
clasp の open というコマンドで開発環境を開くことができます。
$ clasp open
ここから main.ts を選び main 関数を実行することで確認ができます。
仕組みとして未読のものを探して既読のメールにたどり着いたら関数が終わるようになっています。
もし未読のメールが多い場合は dryRun 関数を実行することができます。初期値として 1 が代入されており、この場合は最大1件の通知がされるようになります。
var max: number = null;
function dryRun() {
max = 1;
main();
}
GASには定期実行の設定もあり、Slackに流したい場合は設定することをおすすめします。
LICENSE
connpass-notification is available under the MIT license. See the LICENSE file for more info.