Slack は、オンライン コミュニケーションの世界に革命をもたらしました。この人気のあるチャット アプリケーションは、ビジネスの世界に旋風を巻き起こしましたが、それには正当な理由があります。したがって、チームと効果的にコミュニケーションをとる方法が必要な場合は、Slack for Linux が最適です。
Slack を初めて使用する場合、またはビジネスでの使用を検討している場合は、正しい方向に進んでいます。このチュートリアルでは、この信じられないほど強力なツールの基本を学びます。
Slack の使用を開始して、チームのコラボレーションを向上させましょう!
前提条件
このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものが揃っていることを確認してください:
- Linux システム – このチュートリアルでは Ubuntu 20.04 システムを使用していますが、Debian ベースのシステムならどれでも動作します。
- Slack をシステムにインストールするための sudo 権限を持つユーザー アカウント。
簡単にするために、このチュートリアルでは root ユーザーを使用します。ただし、ベスト プラクティスとして、Linux システムで作業する場合は、sudo 権限を持つ root 以外のユーザーを使用してください。
このチュートリアルでは、sudo 権限を持つユーザーとして Linux システムにログイン/SSH 接続していることを前提としています。
- Python 3.6 以降がシステムにインストールされている。
- Slack アカウントとワークスペース – 後で Slack アプリケーションを作成する際に必要になるため、ワークスペース名をメモしておいてください。
ワークスペースは、チーム メンバーとコミュニケーションできる場所です。
APT パッケージ マネージャーを使用して Linux (Ubuntu) 用 Slack をインストールする
Slack は、Windows、Mac、Linux など、さまざまなオペレーティング システムで動作します。ただし、Slack はサードパーティのアプリケーションであるため、デフォルトではインストールされません。また、Slack を Debian ベースのシステムにインストールする推奨される方法は、Advanced Package Tool (APT) を使用することです。
root 以外のユーザーを使用している場合は、このチュートリアル全体で実行する各コマンドに sudo を追加する必要があります。
公式の Ubuntu リポジトリから Slack をインストールするには:
1. まず、以下の apt update コマンドを実行してローカル パッケージ インデックスを更新し、利用可能なすべてのパッケージの最新バージョンがあることを確認します。
apt update -y

2. 次に、次の apt install コマンドを実行して、Slack パッケージをインストールします。このコマンドは、Slack とそのすべての依存関係を Linux システムにダウンロードしてインストールします。
apt install slack -y
この時点で、apt パッケージ マネージャーを使用して Slack for Linux を正常にインストールできました。

3. 最後に、Application Finder で Slack を検索してクリックし、デスクトップ環境でアプリケーションを開きます。

Snap を使用して Slack をインストールする
APT に慣れていない場合は、Snap を使用して Slack をインストールすることもできます。 Snap は、システムにアプリケーションをインストールできるユニバーサル Linux パッケージ形式です。
しかし、なぜスナップを使用するのでしょうか?まず、Snap パッケージは常に最新です。その結果、常に最新バージョンの Slack (およびその他の Snap パッケージ) がシステムにインストールされます。 Snap を使用するもう 1 つの利点は、サンドボックス化されていることです。このようにして、各 Snap アプリケーションはシステムの残りの部分から分離され、セキュリティが向上します。
Slack with Snap をインストールするには、まずシステムが Snap パッケージをサポートしていることを確認してください:
1. 次の snap コマンドを実行して、システムにインストールされている Snap のバージョンを確認します。
snap version
以下のような出力が表示され、システムが Snap パッケージのインストールをサポートしていることを確認できます。

2. 次に、以下のコマンドを実行して、システムの Snap パッケージ キャッシュを更新します。このコマンドは、利用可能なすべての Snap パッケージの最新バージョンを確実に入手します。
snap refresh

3. 最後に、以下の snap install コマンドを実行して、Slack をダウンロードしてインストールします。
-classic フラグは、Slack がシステム上の追加リソースにアクセスできるようにする従来の制限モードを使用するように Snap に指示します。システムは Slack を従来のサンドボックス化されていないアプリケーションとして扱うため、そのすべての機能を使用できます。
snap install slack -classic
すべてがうまくいけば、下のような出力が表示され、システムに Slack が正常にインストールされたことを示します。

Deb パッケージを使用して Slack をインストールする
これまでのところ、APT または Snap を介したパッケージのインストールが正常に機能することを見てきました。しかし、Slack (またはその他のアプリケーション) の最新バージョンが公式リポジトリにない場合はどうすればよいでしょうか?その場合、Slack をインストールするには Deb パッケージが最適です。
Deb パッケージを使用するもう 1 つの利点は、パッケージをオフラインでインストールできることです。オフライン Deb パッケージのインストールは、インターネットに常にアクセスできるとは限らないリモート サーバーに Slack をインストールする場合に便利です。システムにインストールするパッケージ/依存関係を Deb パッケージから制御することもできます。
Deb パッケージを使用して Slack をインストールするには、まず Slack 用の Deb パッケージをダウンロードする必要があります:
1. お気に入りの Web ブラウザーを開き、Slack のダウンロード Web サイトに移動します。
2. [.DEB アプリのダウンロード] をクリックしますが、ダウンロードは続行しないでください。

3. 一番下までスクロールし、[再試行] を右クリックし、[リンク アドレスをコピー] を選択してダウンロード URL をコピーします。

4. 次に、以下の wget コマンドを実行して、Deb パッケージをダウンロードします。
以下の URL は、手順 3 でコピーしたものに置き換えてください。現在のディレクトリに、サイズが約 60 MB の .deb ファイルを取得する必要があります。ただし、HTML ページを取得した場合は、URL を正しくコピーしてください。
wget https://downloads.slack-edge.com/releases/linux/4.27.154/prod/x64/slack-desktop-4.27.154-amd64.deb

5. ダウンロードしたら、次の dpkg コマンドを実行して、Slack Deb パッケージの内容を一覧表示 (-I) します。 Deb パッケージの名前は、ダウンロードしたリリースによって異なる場合があることに注意してください。
このコマンドは、Slack の正しいパッケージをインストールしていることを確認するのに役立ちます。
dpkg -I slack-desktop-4.27.154-amd64.deb
以下の出力では、Slack 用の正しい Deb パッケージがあることがわかります。 Slack がシステム上で実行する必要があるすべての依存関係を一覧表示する Depends セクションも表示されます。
APT や Snap とは異なり、Deb パッケージ経由でインストールすると、システムにインストールするパッケージを完全に制御できます。

6. 最終的に、以下のコマンドを実行して、Deb パッケージを使用して Slack をインストール (-i) します。このコマンドは、システムで Slack を実行するために必要なすべてのファイルを抽出してインストールします。
dpkg -i slack-desktop-4.27.154-amd64.deb

初めての Slack アプリの作成
Slack をインストールしたら、Slack の強力な機能を最大限に活用しましょう。プロジェクトについて議論/コラボレーションするためのワークスペースとチャンネルを持つこととは別に、Slack では、Slack アプリを統合ツールとして使用して、他のアプリケーションやサービスと対話することもできます。
この記事の執筆時点では、Slack アプリの作成に使用できるアプリ ビルダーは 4 種類あります。
- Bolt – このフレームワークを使用すると、JavaScript、Python、Java を使用して Slack アプリを構築できます。
- ワークフロー ビルダー – このビジュアル ツールを使用すると、コードを書かずに Slack アプリを作成できます。
- Slack SDK – さまざまなプログラミング言語を使用して Slack アプリを構築できるライブラリのセット。 Python、 Node、および Java SDK を含みます。
- 開発ツール – Slack アプリのテストとデバッグを可能にする一連のツール
ただし、このチュートリアルでは、Bolt フレームワークと Python を使用して、Slack からの受信イベントを処理する基本的な Slack アプリを構築します。 Bolt フレームワークは、開始に必要なものがすべて揃っているため、Slack アプリを構築する最も簡単な方法です。コマンドライン インターフェース、ローカル開発サーバー、TypeScript サポートを含みます。
最初の Slack アプリを作成するには:
1. お気に入りの Web ブラウザーを開き、アプリのダッシュボードに移動して、Slack アカウントにログインします。
2. 次に、ポップアップ ウィンドウで [ゼロから作成] を選択します。これは、アプリをゼロから構築するためです。

3. 新しいポップアップ ウィンドウで、Slack アプリに関する次の情報を提供します。
- アプリ 名前 – Slack アプリの名前を設定します。名前は自由に設定できます。このチュートリアルの選択は slack-app-demo01 です .
- アプリを開発するワークスペースを選択 – ドロップダウン フィールドから、開発に使用するワークスペースを選択します。このワークスペースは、Slack アプリをテストする場所です。
- [作成] をクリックします アプリ Slack アプリの作成を完了します。

4. ここで、[基本情報] ページの [機能と機能の追加] セクションで [アクセス許可] を選択します。ブラウザが OAuth &Permissions ページにリダイレクトされ、そこでアプリの権限を管理できます (ステップ 5)。

5. 最後に、スコープ セクションまで下にスクロールし、ボット トークン スコープ セクションの下にある OAuth スコープの追加 をクリックし、下のスコープ (chat:write) を選択して Slack アプリに追加します。
スコープは、ユーザーから要求できる一連のアクセス許可です。アプリにスコープを追加すると、ユーザーに代わって特定の Slack API にアクセスする許可をユーザーに要求します。

ワークスペースに Slack アプリをインストールする
最初の Slack アプリはすでに作成されています。しかし、Slack アプリは、ワークスペースにインストールするまで座っているだけです。
職場に Slack アプリをインストールするには:
1. [アプリのインストール] メニュー (左側のパネル) に移動し、以下に示すように [ワークスペースにインストール] をクリックして、Slack アプリをインストールします。ブラウザーは、アプリがワークスペースにアクセスすることを承認するページにリダイレクトします。

2. 次に、許可要求ページで [許可] をクリックして、ワークスペースへの Slack アプリのインストールを許可します。選択したワークスペースに Slack アプリがインストールされました。
許可されると、ブラウザはワークスペース ページの OAuth トークンをリダイレクトします (ステップ 3)。

3. 最後に、ボット ユーザー OAuth トークンを安全な場所に書き留めます。後でアプリの開発を開始するときに、このトークンが必要になります。
Git などのバージョン管理システム (VSC) や Jenkins などの CI/CD システムに Slack トークンを配置しないでください。そうしないと、VCS または CI/CD システムにアクセスできるすべての人に、Slack ワークスペースへのアクセス権を与えることになります。

Bolt プロジェクトの設定
Slack アプリの作成が完了しました。動作を確認するには、アプリを操作するためのプロジェクトが必要です。このチュートリアルでは、Python を使用して Bolt プロジェクトをセットアップし、プロジェクトをビルドおよび管理します。
ただし、最初に、プロジェクトの仮想環境を作成する必要があります:
1. 以下のコマンドを実行して、システム上の他の Python プロジェクトに影響を与えずに Python パッケージをインストールできる、分離された Python 環境である仮想環境を作成します。
このコマンドは出力を提供しませんが、 という名前のディレクトリを作成します プロジェクトのルート ディレクトリにある .venv。この .venv ディレクトリには、プロジェクトのすべての依存関係が保存されます。
python3 -m venv .venv
2. 次に、次のソース コマンドを実行して、新しく作成した仮想環境をアクティブにします。
source .venv/bin/activate
仮想環境がアクティブになると、以下に示すように、プロンプトの先頭に (.venv) が追加されます。

3. アクティブ化したら、以下のエクスポート コマンドを実行します。出力は提供されませんが、アプリの Slack トークンが環境変数として設定されます。
xoxb_your_token を、「ワークスペースへの Slack アプリのインストール」セクションの最後のステップでメモしたボット ユーザー OAuth トークンに置き換えます。
export SLACK_BOT_TOKEN=xoxb_your_token
4. 次に、[基本情報] ページに移動し、以下に示すように、[アプリの資格情報] セクションでアプリの署名シークレットを見つけます。署名シークレットは、Slack からアプリに送信されるすべてのリクエストに署名して暗号化するための一意のトークンです。
[表示] ボタンをクリックして署名の秘密を明らかにし、それを安全な場所に書き留めます。 Slack アプリは、リクエストの署名を検証するためにこの署名シークレットを必要とします。

5. 以下のコマンドを実行して、アプリの署名シークレットを環境変数 (SLACK_SIGNING_SECRET) として設定します。必ず、signing_secret を手順 4 でメモした署名シークレットに置き換えてください。
export SLACK_SIGNING_SECRET=signing_secret

6. 次に、新しいターミナルを開き、以下の ngrok http コマンドを実行します。このコマンドは、ポート 3000 でローカルホストにリクエストを転送するパブリック HTTPS エンドポイントを作成します。Bolt および Python アプリはこのポートで実行されます。
ポート番号は、エンドポイントに適したものに変更できることに注意してください。
ngrok http 3000

7. 最後に、以下の pip install コマンドを実行して、仮想環境に slack_bolt Python パッケージをインストールします。このパッケージは、アプリをすばやく構築するのに役立ちます。
pip install slack_bolt

Slack アプリの実行とテスト
ここまでで、アプリを構築し、Bolt プロジェクトをセットアップしました。しかし、現在、あなたのアプリは空で、あまり機能していません。ただし、環境をセットアップしたので、コードを記述してから、Slack アプリを実行してテストします。
1. app.py というファイルを作成します。 お好みのテキスト エディタを使用してください。
nano app.py
2. 以下のコードを app.py に追加します。 ファイルを開き、変更を保存してエディターを閉じます。
以下のコードは、環境変数 (SLACK_BOT_TOKEN および SLACK_SIGNING_SECRET) に保存されているトークンと署名シークレットを使用して、新しいアプリ インスタンスを作成します。
このコードには、Slack で特定のイベントが発生したときに呼び出される関数であるプレースホルダー イベント リスナー (@app.event) も含まれています。イベント リスナーを追加することで、アプリに機能を追加できます。
import os
# Use slack_bolt package installed
from slack_bolt import App
# Initialize your app with your bot token and signing secret
app = App(
token=os.environ.get("SLACK_BOT_TOKEN"),
signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
)
# Add functionality here
# @app.event("app_home_opened")
# The built-in development adapter starts your app on port 3000.
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
3. 最後に、次のコマンドを実行して Slack アプリ (app.py) を開始します。このコマンドを実行すると、プロジェクトのルート ディレクトリにいることと、仮想環境がアクティブになっていることを確認してください。
python3 app.py
アプリが正常に起動すると、次の出力が表示されます。
この時点で、Bolt と Python アプリはポート 3000 でローカルに実行されています。ngrok トンネルは、パブリック HTTPS エンドポイントからこのポートでローカル ホストにリクエストを転送します。

結論
このチュートリアルでは、Linux 用の Slack をセットアップする方法を学び、Slack アプリを作成しました。開発環境のセットアップと、Slack アプリのコードの記述について触れました。
それでは、アプリに機能を追加してみませんか?イベント API を使用してさまざまなイベントをサブスクライブし、イベント リスナー関数をコードに追加できます。これらの関数は、サブスクライブされたイベントが Slack で発生したときに呼び出されます。
Web API メソッドを使用して、さまざまな操作をオンザフライで実行するのはどうですか?メッセージの送信、ユーザー情報の取得など。