GlitchとBolt for Pythonを使ってSlackアプリを爆速開発
この記事では、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 Credentials
のSigning 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