Slack と Confluence を併用する

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

On this page:


どのように Confluence Server for Slack アプリを Confluence にインストールしますか?

Atlassian Marketplace に移動して、Confluence Server for Slack アプリをダウンロードします。 

 

どのように Confluence Server for Slack アプリを Confluence サイトに接続できますか?

Slack を使用するには、Confluence インスタンスに安全な接続 (HTTPS) によってインターネット経由でアクセスできる必要があります。したがって、セキュリティで保護されたポートを開いて、サーバーに有効な証明書があることを確認する必要があります。

このオプションでない場合でも、Confluence から Slack への通知を提供するカスタム Slack アプリを作成して、Slack との制限付きの接続を設定できます。アプリの作成方法については、以下のページをご覧ください。

管理者は、[Confluence 管理] の下に [Slack 統合] ナビゲーション アイテムを確認できます。

ここで [Connect Slack Team] を選択します。

Confluence Server Slack アプリをインストールするために、Slack のアプリ ディレクトリに転送されます。Slack アプリの緑色の [インストール] ボタンをクリックして、Slack の OAuth プロセスを完了します。

Slack での OAuth プロセスを完了すると、統合用の設定ページが新しく表示されます。下までスクロールして、入力が必要な 2 つのフィールドを確認します。まず、Confluence Server の Web アドレスを追加します。Web アドレスの末尾に「/」を含めないでください。次に、2. のボックスのコンテンツを Confluence セットアップにコピーします。 

Confluence Server 側で、資格情報を Confluence 設定に貼り付けます。この画面で [保存] をクリックします。上記のスクリーンショットにある Slack ウィンドウで [送信] ボタンをクリックしていることを確認します

接続がセットアップされると、設定に成功した旨を示す Confluence Server からの通知が Slackbot 経由のダイレクト メッセージで送信されます。

どのように Slack に通知を投稿するためのスペースをセットアップしますか?

Slack チャンネルに接続するには、最初に Slack アカウントへのアクセスを確認する必要があります。設定していない場合は (プロジェクト/グローバル管理者を問わず)、Confluence の Slack 統合画面の [接続ステータス] に設定用リンクが表示されます。リンクをクリックすると Slack の認証リンクに転送されて、自身のチャンネルをアプリが参照できるようになります。

このステップを完了すると、"You're accessing Slack as [Your Name (として Slack にアクセスしています)]" というメッセージが表示されて、ドロップダウンからプライベート チャンネルを選択できるようになります。Slack インテグレーションに自身のプライベート チャンネルを接続するすべてのユーザーは、このステップを実行する必要があります。

Confluence 管理者の場合

管理画面の [アプリケーション] セクションで、[統合] の下に [Slack 統合] が表示されます。ここから、Confluence スペースをさまざまな Slack チャンネルに接続できます。

チャンネルを選択すると、Slack への接続が次の表のように表示されます。また、Slack では、Confluence 通知がセットアップされた旨を示す通知が対象のチャンネルに送信されます。

Confluence の設定メニューから、作成済みのブログ投稿、作成済みのページ、アップデート済みのイベントの通知をサブスクライブまたはサブスクライブ解除することで、そのチャンネルに送信する通知を正確に絞り込めます。

スペース管理者の場合

スペース管理者は、自身の Slack 通知をセットアップして設定できます。Confluence スペースの [スペース ツール] の下に、Slack 統合のリンクが表示されます。スペース管理者はこのページから、対象のスペースで現在接続されている Slack チャンネルを確認したり、新しい接続をセットアップしたりできます。 

どのように個人通知を設定しますか?

統合によって、bot からのダイレクト メッセージを介して Slack で特定の個人通知を受信できます。

  1. Confluence ユーザー プロファイル ページに移動します。
  2. [設定] > [Slack 通知] の順にクリックします。
  3. 次のページで、通知を受信するタイミングと希望する Slack ワークスペースに関するオプションを選択します。

どのように Confluence Server をダイレクト メッセージまたはマルチパーティ ダイレクト メッセージに接続しますか?

申し訳ございませんが、Confluence Server の通知は、Slack のダイレクト メッセージやマルチパーティ ダイレクト メッセージにセットアップできません。
代わりに、プライベート チャンネルをセットアップして通知をそこに転送するように設定することをお勧めします。

異なる Slack ワークスペースへの接続方法

Confluence Server for Slack アプリで複数の Slack ワークスペースに接続できます。Slack Enterprise Grid を使用している場合などに最適です。これをすると、Confluence にある任意の Slack 統合ページの上部で、ワークスペースのドロップダウンが表示されるはずです。新しいワークスペースに接続するには、これと [新しいチームに接続] の順にクリックします。上記の手順に従って、新しいワークスペースをこの Confluence Server インスタンスに接続します。

複数の Confluence Server インスタンスを使用しているか、インスタンスがファイアウォールに保護されている場合は、どのように Slack に接続しますか?

追加の Confluence Server インスタンスを Slack にセットアップするプロセスでは、手動設定が必要になります。Confluence Server インスタンスと Slack の間に適切な接続を確立するには、以降の手順に正確に従う必要があります。接続する各 Confluence Server インスタンスに対して、このプロセスを繰り返します。

始めるには、まず https://api.slack.com/apps?new_classic_app=1 をご確認ください。Slack では、現時点でこのアプリと互換性のない新しい権限モデルがリリースされているため、クラシック スコープでアプリを作成するようにしてください。

スラッシュ コマンド

Confluence インスタンスがファイアウォールに保護されている場合は Slack はアクセスできないので、このセクションをスキップできます。

スラッシュ コマンドを使用すると、ユーザーは Slack のメッセージ ボックスからアプリとのインタラクションを直接トリガーできます。

  1. アプリの設定で [スラッシュ コマンド] に移動します。

  2. [新しいコマンドを作成] をクリックします。

  3. このコマンドの詳細をコピーして、{{url}} を Confluence Server の URL:
    コマンド名: /confluence_server
    リクエスト URL: https://{{url}}/rest/slack/latest/command
    使用法のヒント: account, help に置き換えます。

    コマンド名が、ワークスペース内の別の Slack アプリで使用されていないことを確認します。

    保存すると、新しいスラッシュ コマンドが一覧に表示されます。

[Features] の [OAuth & Permissions] に進みます。

OAuth と権限

まず、[新しいリダイレクト URL を追加] をクリックします。これを http://{{url}}/rest/slack/latest/oauth に設定します。先ほどと同様に、{{url}} を Confluence Server の URL で置き換えます。[URL を保存] をクリックしていることを確認します

次に、[範囲] セクションまで下にスクロールします。次のスコープを追加します。

channels:read

channels:write

links:read

groups:read

groups:write

links:write

im:read

mpim:read

chat:write:bot

すべてのスコープを追加したことを確認したら [Save] をクリックします。 

bot はこれらのスコープがすべて設定されている場合にのみ、適切に動作します。bot の動作であとから問題があった場合は、すべての必要な権限が設定されているかどうかをここで確認します。

Bot ユーザー

[Features] ナビゲーション バーで [Bot Users] をクリックして、[Add a Bot User] をクリックします。

表示名と既定のユーザー名には任意の値を設定できます (例: Finance Confluence)。下部にある緑色の [Bot ユーザーを追加] ボタンをクリックします。

イベント サブスクリプション

Confluence インスタンスがファイアウォールに保護されている場合は Slack はアクセスできないので、このセクションをスキップできます。

[Event Subscriptions] ナビゲーション メニュー アイテムをクリックして、[Enable Events] トグル ボタンをクリックします。

リクエスト URL として https://{{url}}/rest/slack/latest/event を追加して、[変更] をクリックします。[認証済み] と表示されて、Slack と Confluence Server インスタンスの間の接続が確立されていることを確認します。

これで、[Workspace Events] で次のイベントをサブスクライブできます。

app_uninstalledchannel_archivechannel_deletedchannel_unarchivegroup_archive
group_deletedgroup_unarchivelink_sharedtokens_revoked

[Bot Events] にスクロールすると、次のイベントを追加できます。

member_joined_channel

message.channels

message.groups

message.im

message.mpim

 

[アプリ展開ドメイン] までスクロールして、Confluence Server ドメインを追加します。

すべてのイベントが追加されたことを確認したら [Save Changes] をクリックします。

アプリのインストール

設定の [Install App] > [Install App to Workspace] をクリックすることで、ワークスペースにアプリをインストールできます。

Confluence の設定画面で、[新しいチームに接続] メニュー アイテムをクリックします。接続タイプで [詳細設定] をクリックします。この画面で、Slack アプリのそれぞれの設定をコピーする必要があります。この手順を完了すると、Confluence Server 統合を利用できるようになります。

Confluence インスタンスを複数のワークスペースに接続するために作成した Slack アプリを配布できますか?

上記の手順に従ってカスタム アプリを作成した場合は可能です。

まず、インスタンスには、アプリの認証情報を使用するワークスペースとの接続が 1 つ以上必要です。これが必要なのは、統合がアプリのクライアントとシークレットを認識するためです。

次に、Slack でインストール URL を見つけます。

  1. アプリを Slack API ページで探します。
  2. [設定] から [配布を管理] に移動します。
  3. 他のワークスペースで配布を有効化します。そのためには、Slack の要件を満たす必要があります。
  4. 共有可能な URL をコピーします。
  5. ブラウザで共有可能な URL に移動します。それによって、インストール フローがトリガーされます。 
  6. ターゲット ワークスペースを選択して続行します。
  7. この時点で、アプリと統合が正しくセットアップされている場合は、Confluence の統合設定ページにリダイレクトされて新しい接続はすでにセットアップされているはずです。

Data Center 製品での連携の使用可否について

はい、この統合は Confluence Data Center と完璧な互換性があります。

Confluence Server 統合でサポートされるスラッシュ コマンドはどれですか?  

統合とのやり取りでは、以下のスラッシュ コマンドを使用できます。

スラッシュ コマンド操作

/confluence_server search <term>

特定の用語を Confluence ページとブログ全体で検索
/confluence_server account

現在の Slack ユーザーが接続している Confluence アカウントを表示

/confluence_server help

スラッシュ コマンドのヘルプ情報を表示します。

どのように統合を微調整できますか?

次の表に示すように、統合の特定の部分を調整できるさまざまなシステム プロパティを使用できます。

システム プロパティ名説明 プラグインのデフォルト値
slack.client.max.channel.bulk.load管理ページで使用される、一度に取得される Slack チャンネルの最大数。どのように Slack のレートが統合を制限するかに影響します。50
slack.client.list.all.conversations

有効にすると、設定ページのチャンネル セレクターのドロップダウンに、ユーザー チャンネルではなく選択したワークスペースのすべての Slack チャンネルが表示されます。

(warning) これを大規模なワークスペースでは使用しないようにしてください、小規模なワークスペースには便利です。

false
slack.client.pagination.limit

slack.client.list.all.conversations が有効な場合は、ロードするチャンネルの最大数です。各ページには 1,000 チャンネルがロードされるため、ページネーション制限が 2 の場合は最大チャンネル数は 2000 になります。

(warning) この値を大きくしすぎるとブラウザが何度もエントリをレンダリングしようとするため、動作が遅くなるかクラッシュします。

2



slack.client.retry.on.connection.failure接続の確立に失敗した場合に再試行する OkHttp3 ブール型フラグ。製品ドキュメントtrue
slack.client.connect.timeout新しい接続を確立する際の OkHttp3 タイムアウト (ミリ秒)。製品ドキュメント3000
slack.client.read.timeoutデータの接続を待機している間の OkHttp 3 タイムアウト (ミリ秒)。製品ドキュメント10000
slack.client.retry.countSlack クライアントに 5xx レスポンスが返された場合に再試行する回数。バックオフ遅延 (秒) はそれぞれ、1、3、5、8、13、30 秒です。3
slack.client.rate.limit.retry.countSlack から 429 HTTP レスポンスが返された場合に、Slack クライアントが再試行する回数。製品ドキュメント。デフォルトで、Slack は Retry-After ヘッダーを、クライアントが次の試行を遅らせるために使用する時間間隔で返します。3
slack.client.thread.pool.sizeSlack 通知を処理するスレッドの数と、Slack からの受信リクエストの処理能力など、統合のその他の非同期操作にも影響します。5
slack.client.queue.size

統合によって消費されるメモリを制限します。たとえば、イベントの大きなスパイクによって一度に多数の通知がトリガーされてキューの最大サイズに達すると、新しい通知をスケジュールする試行は失敗してそれらの通知が削除されます。

デフォルト値が 1000 の場合は、処理するキューに変更を加えることなく、基本的に同様に発生する 1001 以上のイベントが必要となることにご注意ください。そのコンテキストで Slack 通知が有効になっている場合は、大規模な一括編集を行うとその制限に達する可能性があります。

1000
slack.client.cache.expire.secondsSlack リクエストからキャッシュされた値 (チャンネルやユーザー名など) が失効するまでの時間 (秒)。値は Slack トークンに従ってキャッシュされるため、すべての値はそれぞれの Slack ユーザーに制限されます。900 (15 分)
slack.search.max.results
検索スラッシュ コマンドから返される結果の最大件数。5

クラスタ環境の場合は、システム プロパティの一部とこれらのプロパティが表す上限がノードに個別に影響します。そのため、キュー サイズなどの制限は、クラスタで使用可能なノードの数に応じて拡張されます。

どのように統合をトラブルシューティングできますか?

デバッグ ロギング

次のパッケージを使用して、設定DEBUG レベル ログを有効にできます。

  • com.atlassian.plugins.slack
  • com.atlassian.confluence.plugins.slack

Slack からの接続

インスタンスと Slack の間の接続に問題がある場合は、以下を再確認してください。

  • Slack は、HTTPS でセキュリティ保護された URL を介してインスタンスに到達できる。
  • Slack アプリの設定で、末尾にスラッシュを付けずにベース URL を適切に保存している。
  • <baseUrl>/rest/slack/latest/* パスがファイアウォールでホワイトリストに登録されて、セキュリティ フィルターが適用されていることを確認する。

  • Slack からの受信リクエストでは異なる認証メカニズムが使用されるため、これらのパスによって「匿名」リクエストが許可されることを確認する。
  • インスタンスを公開できない場合でも、このページ説明に従ってカスタム アプリを作成することで、通知専用モードで統合を利用できる。

検証イベント エンドポイントにリクエストを実行することで、統合が利用可能かどうかを確認できます。bash ターミナルでは、次のコマンドで実行できます。

curl -X POST \
  https://<confluence-base-url>/rest/slack/latest/event \
  -H 'Content-Type: application/json' \
  -H "X-Slack-Request-Timestamp: $(date +%s)" \
  -H 'X-Slack-Signature: any-value' \
  -d '{"challenge": "boo","type": "url_verification"}'

Slack でのインスタンス URL の送信失敗

インスタンスの URL を送信する際に、アプリがワークスペースから削除された直後に「Oops」エラーが発生することがあります。これは、Slack がアンインストールを完了する前にインスタンスに到達しようとするためです。

この問題は、15 分以内に自動的に修正されるか Slack によってプロセスが終了します。

ページ アップデートに関する通知が送信されない

ページの編集時にユーザーが「ウォッチャーへの通知」チェックボックスのチェックを外すと、アップデート通知は送信されません。

これはアトラシアンのサポート対象ですか?

はい、もちろんです。この統合機能は、アトラシアンがビルドして保守しています。サポートが必要な場合は、support.atlassian.com にアクセスしてください。

最終更新日 2023 年 11 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.