Glitchでウェブツールを連携する
ツールはクラウド一択
技術課のプログラマYです
いつもはUnityエンジニアとしてゲーム開発していますが、
本日はツール作成についての内容となります。
プロジェクトの中でもウェブツールの利用が多くを占めるようになってきた昨今。
そんな中でも最近は複数のウェブツールを連携したネットワークツールを作る時に、Glitch を使用しています。
Glitch はAPIのURLを簡単に提供できるため、
いろいろなウェブツールとも容易に連携できるのがよいところです。
なによりマシンが落ちてました!なんて面倒すぎる!
ツールはクラウドにおきたいですね。
今回は Glitch を使って簡単なアプリケーションを作るまでを記載していこうと思います。
Glitchを使用するメリット
- 使用開始までが手軽
-
Node.jsによるアプリケーション開発がサポートされているので、ソースコードの理解がしやすい - 他の人が作成したツールもそのまま利用しやすい(
Remix)
-
- マシン管理が不要
- アプリケーションのURLが即座に発行できる
Slackからオウム返しするアプリケーションを作る
まずは小さなアプリケーションを作ってみましょう。
botにメッセージを送るとそのままオウム返しするアプリケーションを作ってみます。
(Slack だけとの連携の場合Glitch を使用しなくても何とかなりますが)
-
Slackアプリケーションを用意する -
Glitchプロジェクトを作成する -
SlackアプリからGlitchアプリを呼び出す
1. Slackアプリケーションを用意する
Slack App Directory からアプリを作成します
https://api.slack.com/apps
- アプリケーションを作成
-
Create New Appから作成-
From scratchで作成 - アプリ名、ワークスペースを選択して適宜入力
-
-
- アプリケーションに権限を付与
-
OAuth & Permissionsで下記の Scope を追加chat:writechannels:historygroups:history
-
- アプリケーションの基本情報を追記
-
App HomeでApp Display Nameを編集 -
Show Tabs>Message Tab>Allow users to send Slach commands and messages from the message tabにチェック
-
- アプリケーションのIDを手元に取っておく
-
Basic Infomation>Signing Secretをコピーしておく
-
- アプリケーションを有効化する
-
Install Appを実行 -
Bot User OAuth Tokenをコピーしておく
-
2. Glitchプロジェクトを作成する
まずはアカウントを作成します
https://glitch.com/
- 新規プロジェクトを作成する
今回はglitch-hello-nodeをもとに作っていきます -
New project>glitch-hello-node -
.envに環境変数を記載する
これはnodejsのパッケージdotenvの機能ですが、Glitchではデフォルトで動作します
.envは公開されないので、秘密にしておくIDなどをまとめておきます- 下記を記載しておきます
- SLACK_SIGNING_SECRET(先ほどの
Signing Secret) - SLACK_BOT_TOKEN(先ほどの
Bot User OAuth Token)
- SLACK_SIGNING_SECRET(先ほどの
- 下記を記載しておきます
-
Slackのライブラリを追加する
salck/bolt パッケージを使用します-
package.jsonのdependenciesに"@slack/bolt": "^3.9.0"を追加します
-
- アプリケーションのJavaScriptを記載します
glitch-hello-nodeにはコードが記載されていますが、今回はすべて置き換えます-
server.jsを下記で書き換えますconst { App } = require('@slack/bolt'); const app = new App({ signingSecret: process.env.SLACK_SIGNING_SECRET, token: process.env.SLACK_BOT_TOKEN }); // メッセージが投稿された時に呼ばれるメソッド app.message(async ({ message, say }) => { await say({ text: message.text, thread_ts: message.ts, }); }); // アプリが起動時に呼ばれるメソッド (async () => { await app.start(process.env.PORT || 3000); console.log('⚡️ Bolt app is running!!'); })();
-
-
Glitchアプリケーションの起動
ここで'⚡️ Bolt app is running!!'がコンソールに出てくればOKです
出てこないようであれば、TERMINALから直接起動しましょうnpm updatenpm installnode server.js
-
Glitchアプリケーションの実装完了
Glitchアプリケーションは実装完了となります-
Shareボタンを押して出てくるダイアログからLive siteのURLをコピーしておきます
このURLが、今回作成したアプリのURLです
-
3. SlackアプリからGlitchのアプリを呼び出す
先ほど作成したSlack アプリと、Glitch アプリケーションを接続します
- 作成した
Slackのアプリケーションページを開きます -
GlitchアプリケーションにAPI接続
Event Subscriptionsページから、先ほどのURLにリクエストを飛ばします-
Request URLに[[先ほどのURL]]/slack/eventsと入れると、
動作確認が自動的に開始されます
Verified!と出ればOK
-
- URLリクエストをトリガーする
Slack側のイベントを設定します-
Event Subscriptions>Subscrib to bot eventsから下記のイベントを指定しますmessage.channelsmessage.groups
-
Save Changesで保存します
-
-
Slackアプリケーションを再インストールする
Install App>Reinstall Appで再インストールします -
Slakのチャンネルにボットを追加する
後は、Slackのお好きなチャンネルにアプリを追加するだけです
チャンネルの詳細>インテグレーション>アプリの追加 - メンションしてみるとオウム返ししてくれるはずです
最後に
作成したプロジェクトはこちらです
https://glitch.com/edit/#!/enthusiastic-cool-casquette
Glitch アカウントを作成していれば、Remix からそのまま使用することができます。
Glitch は、ウェブツールを初めて触る場合によい選択肢と思います。
実際のプロジェクトでは、プロジェクト管理ツールから資料を作成したり、
プロジェクト管理ツールのルーチンをSlack から実行するなどで使用しています。
何より実際のマシンを意識しなくてよいのは非常に健康的です。
再起動に悩まされたことのある方は検討してはいかがでしょうか。

注意点
Glitchで進めるべきかの判断基準は、社内に閉じたアプリケーションを使用するかになります。
社内に閉じたアプリケーションと連携する場合はよい選択ではないかもしれません。
また、常時稼働させたい場合はProプラン を検討をおすすめします。
Discussion