3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IFTTTとOffice365emailを連携し授業変更自動通知LINE BOTを作った。

Posted at

はじめに

室長がクラスLINEで誤った授業変更通知をして僕が忘れ物をした(確認しなかった僕が悪い)ので授業変更を自動で通知してくれるLINE BOTを作りました。

仕組み

様々なWebサービス同士を連携させることができるIFTTT(イフトって読むらしい。初見分からんかった。)というものを使用しました。

Outlookで特定のメールアドレス(ここでは授業変更を通知してくる学校のメアド)からメールを受信する。
↓
IFTTTに転送(事前にIFTTT側でOffice365emailとの連携が必要)
↓
IFTTTからWebhook送信でLINE BOTサーバにメール本文をPOST
↓
POSTされたメール本文をグループLINEにPush
  • 言語:Python
  • Webフレームワーク:Flask
  • サーバ:Heroku

ソースコード

クソな部分がいっぱいあるけど許してください....。
まじで....あとで修正するから....今だけだから....許して...。
https://github.com/FlexiblePrintedCircuits/class_bot

参考にした記事や人など

IFTTT

↓IFTTTでのそもそものWebhookの使い方
https://ifttt-japan.club/apply-webhooks
↓メールを受信したらSlackに通知をさせるっていう記事
https://qiita.com/wasnot/items/ba71c7e861fb44cf8d84

LINE BOT側

↓グループにプッシュ通知をさせる
https://qiita.com/kenichi_odo/items/18badf7c069334d9c3a2

Siketyanって子がいるんですけどその子に色々教えてもらいました。
ありがとうSiketyan!!

結果

キャプチャ.PNG
できたっちゃできた。
ただhtmlのタグが入っているので将来的にこいつらを取り除きたい。

詰まったとこ

IFTTTのトリガーにGmailがサポートされていない

最初Gmailでメール受信したら、って形にしたかったけど、去年の3月デサポート終了したらしいので仕方なくOfficeを使用することに。

IFTTTからサーバにメールの内容が送信されずIFTTT側でエラーが出る

Office側でIFTTTに権限を許可していないのが原因でした。
1度IFTTTでOffice365emailのコネクションを切って、もう1度コネクトしたら解決しました。

コードは問題ないのにLINE BOTエラーがでる

IFTTTから送信されたメールの内容がほとんどがクソ長いhtmlのコードで、実際に欲しいメールの内容はそれのごく一部にすぎませんでした。
それがなぜエラーに繋がるかというと、LINEMessageingAPIでは2000文字しか取り扱えないからです。なのでクソ長いPOSTされたメールデータから、実際に欲しい文字列をスライスして取得してそいつをメッセージ送信させることにしたらエラーが解決しました。

自慢させろ

これ5時間で作った

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?