Slackアプリを作りたい

唐突ですが、そういうことです。本来はあまり特定のプラットフォームに乗ったアプリを書くことは好きではないんですが、そんなもんどんなプログラミング言語でも、多かれ少なかれ巨人の肩に乗って書いているので拡大解釈すればいけます。

www.shoeisha.co.jp

そんなわけで上記の書籍を読みながら入門してみます。ざっくりいうと、Slackアプリはアドオンみたいなもののようです。APIを呼ぶだけであれば別にアプリにする必要もないし、またSlackは元々リマインドの機能があるので、それぐらいの機能であれば特にわざわざプログラミングしてまでSlackアプリを作る必要もないみたいです。

いろいろあってみたいことはあるんですが、特にGoogle Workspace(旧G Suite)と連携したいんですよね。そうなるとデータを読みつつみたいな連携になるのでSlackアプリに興味を持ったという経緯です。

作る際には、普通にアプリ専用のWebサーバが必要です。というのもアプリを作る際にSlack本体サーバから呼んでもらうURLを登録する必要があって、それがコールバックみたいな役割を果たします。それを真面目にやろうとすると当然自分でクラウドとかでインスタンス立てる必要が出てきます(書籍内ではそれ以外の方法も紹介されているけど)。

意外だったんですが、SDKJavaScript以外にもいくつか用意されてるんですね。別にURL叩ければいいのでなんでもいいはずなんですが、なんとなくJavaScriptしかだめなイメージがありました。Pythonに慣れてるのでそれがいいかなと思いつつ、まだ正式にリリースというわけではないので、今回は大人しくJavaScriptで。というかJSじゃなくて本当はTypeScriptらしいです。

今回は簡単なエコーアプリ(Slackでアプリに向けてメンションするとその内容をそのまま返してくる)を作ったんですが、実際には結構、いい感じにUIを生成できたり、インタラクションも作り込めるみたいで期待が高まります。Slackが人気あるのも頷けるところであります。

しかしまあ、仕事で使ってはいるものの、いまいちまだSlackを使いこなせていない感は否めません。ほぼ完全に在宅勤務になってからはこれがないと話にならないぐらい依存しているわけですが、かなりの流量がある割に検索方法がよくわかっておらず、目grepしていることも多い(むしろ、検索は強くなかったりするんですかね?思った感じで結果が出てくることが体験上少ないので。。。)。そのあたりをSlackアプリで直接改善したりはできないのかもしれませんが、APIを知ることで内部機能なんかにも詳しくなっていきたいですね。開発者に優しいという評判通り、SDKやSlack APIのテスト機能など、かなり親切なUIだな、という印象を持っているので、そこから作る側としても学んでいきたいのお。