自宅Slackサーバーの作り方③〜Bolt-jsから自宅グローバルIPアドレスを調べてSlackで通知する


※ 当ページには【広告/PR】を含む場合があります。
2022/02/27
蛸壺の技術ブログ|Bolt-jsから自宅グローバルIPアドレスを調べてSlackで通知する

前回ではBolt-jsフレームワークを使ってSlackサーバーを構築するための基礎を解説していきました。

今回はSlackサーバーのちょっとした応用編と題して、
「Slackから自宅のグローバルIPを確認する」方法を紹介してみます。

合同会社タコスキングダム|蛸壺の技術ブログ
自宅Slackサーバーの作り方②〜Bolt-jsをソケットモード(WebSocket)で試す

WebSocketベースの『ソケットモード』からSlackサーバーを構築する手順にも触れます。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集

Slackアプリの実装

今回も前回までの内容を踏襲して、適当なLinuxOS環境でNode.jsがインストールされていることを前提とします。

まだ一度もSlackサーバーを立ち上げたことの無い方は、前回の内容を良く確認して試されることをおすすめします。

またLinuxからグローバルIPを確認するために、今回は
Curlコマンドを利用しますので、手元のターミナルでCurlが動作するかも確認しましょう。

早速LinuxOS上でSlackサーバーを起動して、そこから自宅のグローバルIPを送信するプログラムを作成してみます。

今回は非常にシンプルなプログラムになりますので、Javascriptでソースコードをさっと書いて走らせてみるだけになります。

以下が、今回のプロジェクト構造です。

            
            $ tree
.
├── package.json
└── index.js
        
で、まずはpackage.jsonの中身を以下のような感じに準備します。

            
            {
  "name": "slack-check-gip",
  "version": "0.0.1",
  "description": "Slack app with Bolt-js to check out Global IP",
  "main": "index.js",
  "author": "tacoskingdom",
  "license": "UNLICENSED",
  "dependencies": {
    "@slack/bolt": "^3.9.0"
  }
}
        
終わったらyarn installでbolt-jsを導入しておきましょう。

次にアプリ本体の実装です。

            
            const { App } = require('@slack/bolt');
const child_process = require('child_process');

const app = new App({
    token: process.env.SLACK_BOT_TOKEN,
    appToken: process.env.SLACK_APP_TOKEN,
    socketMode: true,
});

app.message('gip', async ({ message, say }) => {
    //👇自宅のサーバーでグローバルIPを取得
    const gip = child_process.execSync(`curl inet-ip.info`);
    await say(`Your Global IP: ${gip}`);
});

(async () => {
    await app.start(process.env.PORT || 3000);
    console.log('⚡️ Bolt app is running!');
})();
        
ここでは、前回の内容で説明したように、「ソケットモード」でSlackアプリを構築しています。

またイベントのトリガーメッセージは何でもOKですが、今回は
gipという文言でイベント発火するようにしています。

で、なんとコレだけで自宅グローバルIPの確認アプリの準備が整いました。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集

Slackアプリから自宅グローバルIPを確認してみる

後はnodeで起動するだけですが、折角ですので動作確認してみましょう。

ではまずSlackサーバーを確認しておきます。

            
            $ node index.js
⚡️ Bolt app is running!
        
これでスタンバイ状態になりました。

後は世界中何処からでもSlackのチャンネルで
gipと呟くことで、ご自宅のグローバルIPが確認出来るようになります。

合同会社タコスキングダム|蛸壺の技術ブログ

これでふとしたタイミングでグローバルIPの値が変わってしまったとしても、自宅のネットワーク内にあるSlackサーバーが稼働しているだけで外部にいながらグローバルIPをお手軽に確認できるようになって安心です。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集

まとめ

今回はちょっとした場面で役に立つ(かも知れない)Slackアプリで自宅のグローバルIPを確認できるツールを作成する方法を紹介しました。

普段からプライベートでもSlackを使っているかたなら自宅のグローバルIPもこんなに簡単に調べることが可能になっているので、VPN接続などの補助ツールとしても活用できそうです。

参考サイト

LinuxでグローバルIPアドレスを確認する方法

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。

合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】nodejsをこれから学びたい人のためのオススメ書籍&教材特集