🐍

GlitchとBolt for Pythonを使ってSlackアプリを爆速開発

2020/10/26に公開

この記事では、Glitchを活用してSlackアプリを簡単に作成する方法をご紹介します。なお、Slackアプリの開発に bolt-js を利用する場合(JavaScriptで開発する場合)は、 こちら に公式ドキュメントが用意されています。
今回は、Pythonを使って開発する方法のご紹介となります。なお、現時点でGlitchは公式にはPythonの実行をサポートしていませんので、ご利用は自己責任にてお願いします。

Glitchとは

ブラウザ上でアプリケーションのコード編集や実行ができるサービスです。公式サイトの説明文を拝借すると Build fast, full-stack web apps in your browser for freeとのこと。
Node.jsアプリの他、静的サイトやDB(SQLite)も無料で利用できます。日本語で詳しく解説された こちらのサイト もありますので詳しく知りたい方はご覧ください。

準備

Glitchのアカウントを持っていない場合はSignUpしておいてください。今回の手順は無料プランでも十分利用できます。

手順

ソースコードをRemix

早速、GlitchでBolt for Pythonを使った簡単なアプリを動かしてみましょう。Glitch上のテンプレートをRemix(複製)してください。

ソースコード:https://glitch.com/edit/#!/glitch-bolt-python-sample
Remixリンク:https://glitch.com/edit/#!/remix/glitch-bolt-python-sample

Remixが終わると、以下のように任意の名称でプロジェクトが作成されます。ToolsにErrorと表示されますが、今は気にしなくても大丈夫です。

Slackアプリの作成

こちらにアクセスし、Create an Appをクリックします。

App Nameには任意の名称を入力し、SlackのWorkspaceを選択して、Create Appをクリックします。

Slash Commandsをクリックします。

Create New Commandをクリックします。

以下の値を指定してSaveをクリックします。プロジェクト名はRemix操作によってランダムに付与された値(今回の流れではfast-soapy-question)です。各自の環境で付与された値を確認して指定してください。

項目
Command /hello-bolt-python
Request URL https://<Glitchプロジェクト名>.glitch.me/slack/events
Short Description コマンドの説明

続いてOAuth & Permissionsをクリックします。

ScopesのAdd an OAuth Scopeをクリックし、chat:writeを追加します。

画面最上部のInstall App to Workspaceをクリックします。

権限の要求確認が表示されるのでAllowをクリックします。

OAuth Access Tokenが表示されているので控えておきます(あとの手順でglitchに設定します)。

続いてBasic Informationをクリックします。

App CredentialsSigning Secretを表示させて値を控えておきます(あとの手順でglitchに設定します)。

Glitch側にトークンを設定

Slackで生成したトークンをglitchに設定します。
glitchのプロジェクト直下の.envを開き、以下の値を設定します。

項目
SLACK_SIGNING_SECRET SlackアプリのSigning Secretを指定
SLACK_BOT_TOKEN SlackアプリのOAuth Access Tokenを指定

ToolsのErrorが表示されなくなれば設定は完了です。

なお、glitchのenvはプロジェクトが公開設定(Remix直後のデフォルト設定)であっても、プロジェクトに招待されたcollaborators以外のメンバーには見えません。詳細は こちら を参照ください。

動作確認

Slackワークスペース上でtest-appアプリにアクセスし /hello-bolt-python コマンドを実行すると、Slackユーザーにメンションするメッセージが表示されます。

おめでとうございます、これでPythonによるSlackアプリの雛形が完成しました。あとは思う存分にカスタマイズしてみてください。

まとめ

Remixからコマンド実行まで慣れれば10分もかからずに実行できるようになります。
なお、繰り返しになりますが、Glitch上でのPythonプログラムの実行は現時点では公式にサポートされていません。
ただ、Glitchのフォーラムの投稿などを見ていると、公式サポートはしていないものの、暗黙的に許容された使い方のような温度感が見受けられます(あくまで個人の見解です)。
そのため、Glitch上のPythonがある日突然使えなくなる可能性は低いとは思いますが、不安な方は冒頭にあげている こちら のBolt for JSをご利用ください。
それではみなさん、よりよいSlackライフを!

Discussion