世の中には30分ごとにWebサイトを監視するという謎のバイトがあるらしい🤔
Notification-Bot(以下、本Bot)は、任意の時間間隔でWebサイト/Twitterアカウントの更新を監視し、LINE BOTで通知することができる。また、サイトのどの箇所が更新したかも通知することができる。
また本Botは定期実行する必要があり、HostingサービスとしてFirebaseを使用する前提で作成している。
- LINE BOTを作成する
- Twitter APIトークンを作成する
- Firebase Projectを作成する(Blazeプラン)
- Realtime Databaseの設計を行う
- 必要に応じてファイル内容の変更を行う
- firebaseへデプロイする
"db": {
"HTML": {
"1": {
"body": "dummy",
"id": 1,
"mode": "dummy",
"url": "dummy"
},
"2": {
"body": "dummy",
"id": 2,
"mode": "dummy",
"url": "dummy"
}
},
"TWITTER": {
"1": {
"id": 1,
"time": "dummy",
"twitterid": "dummy"
},
"2": {
"id": 2,
"time": "dummy",
"twitterid": "dummy"
}
},
"USERID": {
"1": {
"id": 1,
"userid": "dummy"
},
"2": {
"id": 2,
"userid": "dummy"
}
}
}| ./ | 変更内容 |
|---|---|
| .firebaserc | deploy先のプロジェクトIDを記述する |
| functions/ | 変更内容 |
|---|---|
| index.js | module.exportsにて、監視開始時間/監視終了時間/定期監視時間を変更する |
| functions/data/ | 変更内容 |
|---|---|
| site.json | 監視したいURL/Twitterアカウントを記述する |
| template_message.json | メッセージを変更する |
| functions/env/ | 変更内容 |
|---|---|
| db-url.json | Firebase realtime databaseのurlを記載する |
| firebase-project.json | Firebaseプロジェクトの情報を記載する |
| linebot.json | LineBotのアカウント情報を記載する |
| twitter_api_token.json | Twitterトークン情報を記載する |
上記のファイルを変更した後、ローカルでの実行やデプロイが可能となる。
~Notification-Bot/
> firebase deploy
- node_modulesをインストールする
~Notification-Bot/
> cd functions
~Notification-Bot/functions/
> npm install
- funtionsのserve
~Notification-Bot/functions/
> cd ..
~Notification-Bot/
> firebase serve --only hosting,functions
- ngrokを使いトンネリング(好みのポートで)
~
> ngrok http 8000
- Webhookの設定 LINE DevelopersのBotのWebhook settingsに、ngrokが発行したURLを登録する
-
本BotはFirebaseのBlazeプランで動かす前提となっている。Blazeプランは従量課金制となっているため、注意すること。
-
実行時にメモリ不足のエラーが出た場合は、firebase functionsのメモリを増設する必要がある
"Notification-Bot" is under MIT license.

