Skip to main content
Bring your team and maximize your impact at Dreamforce. Register three or more to unlock $999 passes.

Slack アプリの種別について知る

学習の目的

この単元を完了すると、次のことができるようになります。

  • 単一ワークスペース向けアプリ開発の設定とベストプラクティスを説明する。
  • 特定の Enterprise OrG 内のワークスペースに限定してアプリを配信する方法を説明する。
  • 単一ワークスペースアプリと配信アプリの違いを説明する。

単一ワークスペースアプリと配信アプリ

Slack アプリを作成すると、最初は 1 つのワークスペース内で設定とインストールを行います。多くの社内ツールや特殊なワークフローでは、単一ワークスペースアプリで十分であり、追加のインストール手順や配信は必要ありません。

ただし、オーガナイゼーション内または公開して、複数のワークスペースで利用できるようにするには、アプリを配信する必要があります。そこで登場するのが、配信 (マルチワークスペース) アプリです。この場合、通常 OAuth 2.0 を使用して、追加のワークスペースへのインストールを許可します。

この単元では、単一ワークスペースアプリの作成と管理の基本と、アプリをより広く利用できるように配信する方法を学習します。

単一ワークスペースアプリを作成する

最初にアプリを作成するときに、アプリ名と作成先のワークスペースを選択します。この時点で、アプリは単一ワークスペースアプリです。つまり、作成先のワークスペースのユーザーだけがインストールできます (もちろん、アプリの承認プロセスに従います)。

Free、Pro、Business+、Enterprise+ のいずれのオーガナイゼーションであっても、アプリケーションの機能を 1 つのワークスペースのメンバーのみが使用する場合は、単一ワークスペースアプリが適しています。

OAuth 2.0 を使用して認証フローを作成すると、さまざまなワークスペースのさまざまなユーザーがアプリを許可し、そのユーザーまたはワークスペース用のアクセストークンを生成できるようになります。これは、アプリを自由に展開するための重要なステップの 1 つです。

単一ワークスペースアプリは便利です。OAuth 2.0 フローを実装するコードを書かなくても、アプリ設定内 ([Install App (アプリをインストール)] ページ) からボットトークンやユーザートークンを直接生成できます。また、単一ワークスペースアプリでもアプリでできるすべての機能を使用できます。

アプリをワークスペースに関連付ける

ここまでで、Slack アプリを作成するときに、ワークスペースに関連付けることを学びました。Slack では、この作業を簡単に行えます。アプリ設定でスコープを追加したり機能を有効にしたりした後、数回のクリックで、関連付けられたワークスペースにアプリをインストールできます。

  1. アプリ設定で [Install App (アプリをインストール)] を選択し、続いて [Install App to Workspace (ワークスペースへのアプリのインストール)] を選択します。
  2. インストールが完了すると、アクセストークンが 1 セット生成されます。これを使用してアプリの API コールを認証できます。

すべてのアプリは、デフォルトで単一ワークスペースアプリとして作成されますが、さらにほかのワークスペースに配信することが必要な場合もあります。その最初のステップが、アプリを OrG 対応にすることです。

OrG 対応アプリの利点

Enterprise オーガナイゼーション内のさまざまなユーザーにとって、OrG 対応アプリにどのようなメリットがあるかを見ていきます。

  • OrG 管理者は、OrG 対応アプリをすべてのワークスペースに簡単に配信したり、特定のワークスペースからのアクセスを制限したりできます。
  • OrG 管理者または開発者は、ワークスペースの作成時に OrG 対応アプリが自動的にインストールされるように設定できます。
  • ユーザーは一度アプリを認証するだけで、すべてのワークスペースでアプリにアクセスできます。

オーガナイゼーション対応アプリは、オーガナイゼーションレベルで一度インストールします。インストールが完了すると、アプリは複数のワークスペースでの権限を表す 1 つのトークンを持ち、OAuth フローを使用してオーガナイゼーション全体に対して一度許可されます。その後、OrG 管理者は、さらに許可を得なくても、オーガナイゼーション内のワークスペースへアプリを追加できます。なお、OrG 対応アプリがオーガナイゼーション内のワークスペースに自動的に追加されることはなく、オーガナイゼーションレベルでインストールされることによって追加の権限が付与されることもありません。

配信に向けてアプリを準備する

アプリの配信を有効にする前に、いくつか準備しておくことがあります。

  1. アプリが OAuth 2.0 のインストールフローをサポートしている必要があります。単一ワークスペースでの利用にとどまらないため、コードからトークンへの交換を処理し、インストールメタデータを (通常はデータベースに) 保存しなければなりません。この作業に慣れていない場合は、こちらの OAuth ガイドとファーストパーティ SDK に含まれている例を参照してください。
  1. すべての URL で HTTPS を使用する必要があります。配信アプリでは、すべての URL (OAuth 2.0 リダイレクト、イベント購読、インタラクティビティ、オプションのロード、スラッシュコマンド) で安全な HTTP+SSL が必要です。公開配信をアクティブにする前に、すべての URL が https:// で始まっていることを確認します。
Note

クイックヒント
配信アプリに移行する場合は、オンボーディングフローを充実させます。また、多くのユーザーはアプリをインストールする前に管理者の承認が必要になる点にも留意してください。

公開配信をアクティブにする

準備が完了したら、アプリ設定の [Manage Distribution (配信を管理する)] ページに移動し、[Activate Public Distribution (公開配信をアクティブにする)] を選択します。 これだけです。ただし、この場合の「公開配信」とは、OrG 内での配信を指します。外部のオーガナイゼーションにアプリを配信する場合や Slack Marketplace に掲載する場合は、Slack の公開配信と Marketplace に関するドキュメントを参照してください。

公開配信を有効にすると、埋め込み可能な [Add to Slack (Slack に追加)] ボタンのコード、選択するとインストールプロセスが開始される共有可能な URL、Slack アプリの提案を有効にする HTML メタタグを利用できます。

[Activate Public Distribution (公開配信をアクティブにする)] オプション。

Note

クイックヒント
公開配信は、同じボタンからいつでも解除できます。この操作により、アプリを作成した元のワークスペース以外のすべてのワークスペースから、アプリが削除されます。

非公開配信をアクティブにする (Enterprise+ のみ)

Enterprise+ プランのお客様には、もう 1 つの配信方法として非公開配信があります。この社内専用アプリの場合は、まず Enterprise OrG ワークスペースでアプリを作成し、続いてアプリ設定の配信ページから [Org Level Apps (OrG レベルアプリ)] を有効にして、非公開配信を利用できるようにします。ボットトークンの範囲を 1 つ以上追加し、手順に従って OrG レベルでアプリをインストールしてから、必要に応じてワークスペースへのアクセスを許可します。

管理者ダッシュボードからワークスペースにアプリを追加する

アプリを OrG にインストールした後、管理者は次の手順で 1 つ以上のワークスペースにアプリを追加できます。

  1. OrG の管理者ダッシュボードに移動します。管理者ダッシュボードは、Slack でワークスペース名を選択し、[Organization Settings (オーガナイゼーションの設定)] を選択すると表示されます。URL は app.slack.com/manage/<エンタープライズ ID> のような形式になります。
  2. サイドバーで [Integrations (インテグレーション)] を選択し、[Installed apps (インストールされたアプリ)] を選択します。
  3. 追加するアプリを見つけて、その名前の横にある 3 つのドットを選択します。
  4. [Add to more workspaces (他のワークスペースにも追加)] を選択します。
  5. 追加先のワークスペースを選択し、[Next (次へ)] をクリックします。
  6. アプリに必要な権限を確認し、[Next (次へ)] をクリックします。
  7. 次のモーダルウィンドウで、[I'm ready to add this app (このアプリを追加する準備ができました)] を選択します。
  8. 最後に、[Add App (アプリを追加する)] を選択します。
Note

クイックヒント

データベースの更新やデータの消去を行うために、ユーザーがアプリをアンインストールしたタイミングをアプリ側で把握したい場合があります。そのための Events API イベントとして app_uninstalled があります。

デプロイを自動化する (CI/CD)

配信後、複数の環境 (開発、ステージング、本番) にわたってアプリを維持するには、自動化が必要です。Slack CLI で CI/CD を活用すると、UI での手動設定から、ターミナルや自動化プラットフォームを介した本格的なライフサイクル管理へ移行できます。

Slack CLI のデプロイフックを CI/CD ワークフローに組み込み、設定とコードの同期を維持します。コードを本番にデプロイする前に、アプリ設定が同期され、アプリが再インストールされていることを確認します。自動デプロイのために、テンプレートの .slack/hooks.json ファイルに次のようにデプロイフックを追加します。

{
 "hooks": {
   "get-hooks": "npx -q --no-install -p @slack/cli-hooks slack-cli-get-hooks",
   "deploy": "git push heroku main"
 }
}

このフックは、デプロイプロセスがトリガーされるたびに Heroku へのデプロイコマンドを実行するよう Slack CLI に指示します。slack deploy コマンドは、次の処理を実行します。

  • manifest.json ファイルに変更があった場合に、アプリ設定を更新する。
  • アプリ設定の変更に基づいて必要な場合はアプリを再インストールする。
  • デプロイフックを実行して、アプリケーションコードを Heroku へプッシュする。

さらに一歩進めて、main ブランチへのマージ時に slack deploy を実行する GitHub Action をテンプレートに追加することもできます。これにより、オーガナイゼーション内のすべての Slack アプリに対して、明確で一貫性のある CI/CD プロセスを構築できます。次に .github/workflows/deploy.yml ファイルの例を示します。

name: Deploy Slack app
on:
 push:
   branches:
     - main
jobs:
 build:
   runs-on: ubuntu-latest
   timeout-minutes: 5
   steps:
   - uses: actions/checkout@v4
     - name: Install Slack CLI
       run: |
         curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
     - name: Install Heroku CLI
       run: |
         curl https://cli-assets.heroku.com/install.sh | sh
     - name: Deploy to Slack and Heroku
       env:
         SLACK_SERVICE_TOKEN: ${{ secrets.SLACK_SERVICE_TOKEN }}
         HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
       run: slack deploy -s --token $SLACK_SERVICE_TOKEN

再インストールが必要になる場合

slack deploy コマンドは、スマートに動作します。まず manifest.json ファイルを確認し、アプリの再インストールが必要な変更がないかをチェックします。権限や基本的な機能を変更した場合、既存のユーザーが新しい条件を承認する必要があるため、再インストールが必要になります。

再インストールが必要になる主な変更は次のとおりです。

  • スコープの変更: スコープを追加または削除する (canvases:create の追加など)。
  • OrG 全体へのデプロイの有効化: org_deploy_enabled を true に設定する。
  • イベント購読の追加または変更: member_joined_channel などの新しいイベントを購読する。
  • 機能の追加または削除: アプリの AI 機能を有効化する。

ユーザーに予期しない影響が出ないよう、この動作を理解しておいてください。

まとめ

Slack アプリは単一ワークスペースへのインストールから始まります。これは、トークンを手動で生成することで設定を簡略化できるため、社内ツールに最適です。ほかのワークスペースにも展開するには、配信を有効にする必要があります。公開配信では、OAuth 2.0 を使用してあらゆるワークスペースに配信できます。一方、Enterprise オーガナイゼーションでは、OrG レベルアプリを使用して非公開で社内に配信できます。

配信アプリには HTTPS URL と OAuth 2.0 の実装が必要ですが、一元的な管理が可能になり、一度の認証で複数のワークスペースで利用できます。アプリの利用拡大に伴い、Slack CLI を CI/CD パイプラインに組み込み、デプロイの自動化、設定の同期、権限変更時の再インストール管理を行い、すべての環境で一貫性のある確実な更新を実現します。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む