ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

羽ばたけ! Slack じゃんけん!

みなさんこんにちは。

前回のエントリーで Slack じゃんけんを公開し、その後まったくご好評いただいていない柿本です!

tech.unifa-e.com

ひょっとしたら、もしかして、見方によっては、可能性として、 Slack でじゃんけんをしたいという需要はあまりないのかもしれません!

それはともかく、せっかく Slack アプリを作ったので Slack App Directory に登録して、ボット職人の仲間入りを果たそうと思います。

Slack アプリ申請の手順は公式のガイドラインに記載の通りなので詳細は省きます。

それ以外の「意外と手こずった!」作業について記載することにします。

最終的に、1回の差し戻しがありましたが、 Slack App Directory に掲載されました!

unifa.slack.com

やること

  1. 何はともあれ LP
  2. Add to Slack ボタンのリダイレクト
  3. /janken help の対応
  4. プライバシーポリシーの精緻化

1. 何はともあれ LP

Slack App Directory にアプリを載せるには、ランディングページが必要です。

私は WEB のフロントエンド( HTML / CSS )はあまり得意でない(というか苦手なのでチャットボットを作った)のですが、やはり逃れることはできないようです。

そうも言ってられないので、 Gatsby starter から使いやすそうなものを選んでそれっぽいものを作りました。

slashjanken.xiz-kak.com

独自ドメインのサイトを無料でホスティングできるので、以前に Jamstack の勉強がてら使ってみた Netlify を利用しています。

ちなみに Slack App Directory への申請にはプライバシーポリシーと連絡先(メールアドレスなど)の掲載が必要です。

2. Add to Slack ボタンのリダイレクト

Slack アプリを作ると設定画面の「Manage Distributions」ページで Add to Slack ボタンの html タグ(スニペット)が表示されます。

通常はこれを LP などに貼り付ければ良いのですが、 Slack bolt を使ってアプリを作った場合、このスニペットは使えません!!

Slack bolt の OAuth フローは state パラメータを必須としており、このスニペットは state パラメータに対応していないためです。

GitHub の issue でも話題になってますが、結論、

installer.generateInstallUrl() を使って動的に state つきのインストール URL を生成できるよ!

と Slack の中の人が言っているのでその仕組みを使います。

Slack App Directory や LP に置く Add to Slack ボタンの href を Slack bolt で動的に生成してセットすることはできないので、動的に生成したURLにリダイレクトする固定のエンドポイントを準備することにします。

github.com

これにより {サーバーのURL}/slack/redirect_install にアクセスすれば、インストール画面に遷移することができます。

3. /janken help の対応

アプリにスラッシュコマンドが実装されている場合、 help を参照する手段が必要になります。公式のアプリ申請のチェック項目に例として /mycommand help と記載されているので、それに倣うことにします。

/janken help と打つと以下が表示されるようにしました。

f:id:unifa_tech:20210421141158p:plain

この文章が何かの助けになるのかはちょっと不明ですが、とりあえずじゃんけんができそうな雰囲気は絵文字で伝わりますね!

4. プライバシーポリシーの精緻化

差し戻しの原因はこれでした。

他のアプリや Slack 公式の説明を見ても、プライバシーポリシーは厳しめにチェックされることは予想していたのですが、案の定差し戻しされました。

ですが、何がいけないのか、どう直すべきか、を具体的にコメントに記載していただいたので、ほとんど迷うことなく修正して再提出できました!

f:id:unifa_tech:20210421142355p:plain
2点のプライバシーポリシーに関する指摘で差し戻しされました

最後に

提出して審査が通ると自分の子供が受験に受かったかのような嬉しい気持ちになります!

※ 私の子供はまだ2歳半なので経験したことはありませんが(笑

Slack bolt を使えば簡単に Slack アプリが作れて、それほどの手間なく Slack App Directory に掲載できることがわかりました。

これを機にいろんな便利ツールを Slack アプリで作って、真のボット職人を目指して精進して参る所存でございます!

余談ですが、4/1 に Slack App Directory に公開された Janken アプリは、 4/21 時点で 18 のワークスペースにインストールされております!自分が作ったものが世界のどこかで使われていると思うと嬉しですね。

羽ばたけ! Slack じゃんけん!!


ユニファでは真のボット職人保育をハックするエンジニアを募集中です! ご興味がある方は是非お気軽にお問い合わせください。

unifa-e.com