絵文字でリアクションしたURLを特定チャンネルに集めたい
RSS登録するフィードの更新に合わせてどんどん投稿されていくため、気になった記事は専用のチャンネルに移したい。それに限らず、X(元Twitter)やブラウザやメルマガなどの他アプリからもリンクURLを共有してカードを投稿したいのだけど、Slack標準の共有機能ではいちいち投稿先のアカウントやチャンネルを指定する必要があって煩雑だし、誤爆の可能性がある。なので iOS のショーカット機能を使って Slack の特定チャンネル仕組みを作っておくと便利になる。
上記の記事において、さまざまなアプリから特定のチャンネルにあとで読みたい記事をまとめるショートカットを作成したが、SlackのRSSリーダーから特定チャンネルにまとめさせたい場合にはワンタップでできるとさらに嬉しい。
現在でも、Slack ではメッセージメニューからメッセージを共有し、必要ならそれに説明を加えることができるという素晴らしい機能があります。しかし、多くのチャンネルからメッセージを 1 か所に集めたい場合に、それをワンクリックで行える方法はこれまでありませんでした。
その解決策がこちら、リアク字チャンネラーです。有用なツールですが、ふざけた名前だと思われるかもしれませんね。これは、あるチャンネル(または複数のチャンネル)から別のチャンネルにメッセージをすばやくコピーするためのものです。当社のチーム用に作ったのですが、とても便利でしたので、ほかの人にも使ってもらえるようにしました。
Slack社内でも絵文字リアクションを使った転送処理が使われており、アプリも提供されているのだけど、Slack公式の転送機能が使われており、そうするとBOTのチャンネル参照権限の関係から処理対象にするのがややこしくなってしまったり、他のアプリからショートカットで利用したときと挙動が変わってしまう問題が出てくる。このため、オリジナルのBOTを作成してショートカットでURLを転送したときと同様の挙動をBOTに実装することで体験を損ねないようにしたい。
今回の Slack BOT 作成では Google Cloud Funcitons のサーバレス環境に Slack Bolt フレームワークで構築する。絵文字リアクションという明確なトリガーによって起動し、URLを書き出したら終了する処理において常時起動のサーバーを用意するのは不合理であり、起動時間で課金されるサーバーレス環境に構築することに経済合理性があると判断した。