LoginSignup
0
0

More than 1 year has passed since last update.

Slack bot開発初心者がFlask/Vue.js/GoogleAPIでbotサービスを作ったらこうなったという話

Posted at

リバネスでCIOをやっています、geeorgeyです。

結論から言うと結構時間がかかりました。
開発自体はこちらの投稿あたりからスタートしているので、2ヶ月ほどかかったことがわかります。Vue.js / FlaskアプリにSlack for boltを組み込むには

どんなサービスを作ったのか

詳細はこちらにございます
Slackアシスタント -OYASUMI bot-
簡単に言うと、Googleカレンダーに休暇と入れておけば、その日のSlackメンションは非通知化されるというBotです。
SlackとGoogleWorkspaceを利用されている組織におすすめな機能となっています。
649ed1b82354815f11b8525fd5e290de.png

何を使ったか

色々と右往左往しながら開発しましたが
データソースは以下の2つです。API叩きまくりました。
- slack API
- Google API

Webサービスについては以下の構成になっています
- バックエンド:Flask(python)
- フロントエンド:Vue.js

デプロイ先はHerokuです。

処理ロジックは入っていませんが、同様な構成でWebサービスを作るためのテンプレートをこちらで開発中です。もしよろしければ使ってみてください。
pythonを使ってリアクティブなWebアプリを作りたい【開発編5】Slack boltの組み込み

難しかったこと

Google APIについて

こちらは別途記事化しようと思いますが、一般開放でサービス展開するためには、Google側とコミュニケーションを取る必要があります。利用の用途、Webの作成、プライバシーポリシーと利用規約の整備といった準備が必要です。
途中、動画でどんな処理をしているのかを説明する必要があったりと、物理的に時間を結構持っていかれます。
このために利用規約に加筆が必要になったりするのでなおさら時間がかかるのは間違いありません。
Google APIの利用自体は、python用のコードもサンプル提示されるのでかんたんに使えると思います。
Vue.jsからOAuthする部分にはめちゃくちゃハマりました。こちらに書いてあります。
Vue.js から Google OAuthでaccess_token,refresh_tokenを取得する

slack APIについて

こちらは、slack bolt for pythonという開発キットがSlackから提供されているので、それを使っています。
非常にかんたんに実装できるので、pythonでSlack Botを作る場合はこれ一択です。
slackにはたくさんのAPIが備わっていて、知っていればスマートな実装ができるというものばかりです。この辺については、そうはいっても知らないものは使えないのでSlackの @seratch さんには多大な協力を頂きました。ありがとうございます。

slack appについて

自社利用のみであれば、環境変数にbotの情報を入れて使えばよいのですが、配布アプリにする場合はそうは行きません。やり方についてはこの辺を参照してください。
続:Slack Bolt for Pythonを使ってのbot構築 アプリ配信に向けた対応

βテスターを募集しています

ということで、無事にリリースが出来ましたので、現在βテスターを募集しています。
業務の中心にSlackとGoogleカレンダーがあるチームは是非使ってみてください。
導入にあたっての資料はこちらに準備してあります

Slack botは業務パフォーマンスに直結する

以下は、私の個人的な想いではあるのですが、Slackbotは組織のパフォーマンスに強く貢献すると考えています。
コミュニケーションのハブとして、かなりの時間がSlack上で流れている弊社では、色々な情報をとにかくSlackに集めています。
これらの情報から新しいアクションがスムーズに生むことが出来たり、より大きな動きへと加速させることが出来たらどうでしょう。本当に強い力となると思います。

今回はSlackユーザーをサポートするようなツールを作ってみましたが、より色々なサービスを展開できるような気がしてワクワクしています。まずはリバネスの社内でゴリゴリに使い倒せるようなものを、徐々に外側にリリースしていけると良いのですが。
引き続き、こちらの方向性での開発を進めていきたいと思っています。

人材募集中!

Slack/Salesforce/Heroku/PHP/Nuxt.jsなんかに興味のあるエンジニアを募集しています。
是非お声がけください。
こんな感じで開発してみませんか?https://note.com/geeorgey/n/ncbfc82c87cf8
rectangle_large_type_2_acef530774c88b34fb063a666653aa50.jpeg

0
0
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
0
0