Slack連携機能(version 2.6以降)

概要

統合制御サーバーでは、 Slack のチャンネルにIROHA2のステータス情報を投稿することができる。 これにより、ユーザーはIROHA2が置かれているネットワークの外部からIROHA2のステータスを確認することができるようになる。

Alternative Text

Fig. 277 Slack連携機能の概略図

主な機能は以下の通りである。

  • Slackアプリのトークンの管理

  • 実験課題番号に紐づいたSlackチャンネルの作成

  • チャンネルへのユーザー登録補助(実際の登録作業はSlackアプリケーションで行う)

  • 指定したチャンネルへのメッセージおよび画像の投稿

  • Slack投稿機能のOn/Off

  • 投稿内容および周期、モードの設定

Slackのワークスペースには、実験課題毎に専用のprivateチャンネルが作成され、このチャンネルにIROHA2のステータス情報を投稿する。 このチャンネルには装置スタッフおよび実験ユーザーが参加し、Slackアプリケーションから投稿を確認することができる。

Slackにおける準備

Slack連携機能を使用するまでの大まかな流れは以下の通りである。

  1. Slackのワークスペースを作成する

  2. Slackアプリを作成し、ワークスペースに追加する

  3. 統合制御サーバーにアプリのトークンを登録する

  4. 統合制御サーバーで設定を行う

Slackのアプリを作成してワークスペースに追加するまでを説明する。

ワークスペースの作成

ここでは詳細な説明は省略するが、 公式のヘルプページ などを参考にワークスペースを作成する。

アプリの作成

SlackアプリはWeb APIを利用してチャンネルを作成したり、メッセージを投稿したりすることができる。

まず、 slack api にアクセスする。

Alternative Text

Fig. 278 slack api のページ

Create an app からアプリを作成することができる。 既存のアプリが存在しない場合には Fig. 279 のダイアログが表示される。

Alternative Text

Fig. 279 アプリ作成ダイアログ

From scratch を選択する。

Alternative Text

Fig. 280 アプリ作成ダイアログ(From scratch選択後)

App Name にアプリ名を入力し、 Pick a ~ でワークスペースを選択する ( Pick a ~ に選択肢が表示されない場合には、 Sign into a different workspace からワークスペースにログインする必要がある)。 設定後、 Create App を選択し、アプリを作成する。

アプリの権限の設定

新規作成したアプリは初期状態では何の権限も持たないため、権限を追加する必要がある。

アプリを作成すると(もしくはslack apiの画面で既存のアプリを選択すると)、 Fig. 281 が表示される。

Alternative Text

Fig. 281 アプリ設定画面

アプリの権限を追加するには OAuth & Permissions を選択する。

Alternative Text

Fig. 282 OAuth & Permissions画面

Scopes において、 Bot Token Scopes に権限を追加する。 Add an OAuth Scope を選択すると権限の一覧が表示されるので、必要な権限をすべて選択する。 必要な権限を Table 99 に示す。

Alternative Text

Fig. 283 Botの権限の設定

Table 99 追加する権限

OAuth scope

説明

channels:manage

Publicチャンネルの管理と作成

channels:read

Publicチャンネルの情報を取得

chat:write

メッセージの投稿

files:write

ファイルのアップロード

groups:write

privateチャンネルの作成

groups:read

privateチャンネルの情報を取得

team:read

ワークスペースの情報を取得

users:read

ワークスペースのユーザーの情報を取得

users:read:email

ワークスペースのユーザーのメールアドレスを取得

権限を1つ以上追加すると、 OAuth & Permissions の上部( Fig. 282 )の OAuth Tokens for Your WorkspaceInstall to Workspace が有効になるため、これを選択する。 権限の追加を許可するかどうかを確認されるため、これを許可する。

トークンの取得

実際にアプリを利用してSlackにメッセージを投稿するにはトークンが必要になる。 アプリの権限の設定後、 OAuth & Permissions の上部( Fig. 282 )の OAuth Tokens for Your Workspace にBotのトークンが表示されるようになる。

Alternative Text

Fig. 284 Botのトークン

このトークンの文字列をコピーしておき、後ほど統合制御サーバーに登録する。

ワークスペースへのアプリの追加

Slackアプリケーションにおいて、作成したアプリをワークスペースに追加する。 詳細は 公式のヘルプページ を参照のこと。

Slackユーザーの種別

Slackのユーザーは、ワークスペースのすべてのチャンネルにアクセスできる通常ユーザーと 特定(大抵は1つ)のチャンネルにしかアクセスできないゲストユーザーに分けられる。

装置スタッフは 通常ユーザー としてワークスペースに招待しておく。 通常ユーザーとしてワークスペースに参加したユーザーは、統合制御サーバーで新しくチャンネルを作成した際に、 自動的にそのチャンネルに追加されるため、実験のたびに手動でチャンネルに追加する手間を省くことができる。

実験ユーザーは ゲストユーザー として特定のチャンネルに招待する。 ゲストユーザーは招待された特定のチャンネルにしかアクセスできないため、情報へのアクセスを制限することができる。

統合制御サーバーにおける操作

統合制御サーバーにおいて、メニューから Settings 画面を開き、 Slack タブを選択してSlack連携機能の設定画面を表示する。

Alternative Text

Fig. 285 Slack連携機能の設定画面

この設定画面は

  • 管理者のみがアクセスできる Slack API Settings パネル

  • すべてのユーザーがアクセスできる Slack Post Settings パネル

で構成される。

Slack API Settings パネルでは、トークンの登録やチャンネルの作成、機能のOn/Offの切り替えなどを行う。 Slack Post Settings パネルでは、投稿するイベントの種類の選択、投稿周期の設定などを行う。

管理者による設定

トークンの登録(更新)

Slack API Settings パネルの Token 入力欄にトークンを入力し、 Update ボタンを押下する。 正しくトークンが登録されると、 Workspace にワークスペース名が表示されるようになる。

Alternative Text

Fig. 286 トークンの登録

Note

ワークスペース名が表示されない場合、アプリの権限(Scope)の設定が誤っている可能性がある。 トークンが正しくない場合、以降の操作は行うことができない。

装置スタッフの表示

Slack API Settings パネルの BL member にワークスペースに参加している装置スタッフの情報を表示することができる。 Update ボタンを押下すると装置スタッフの名前とメールアドレスが表として表示される。

Alternative Text

Fig. 287 装置スタッフの一覧

チャンネルの作成

Slack API Settings パネルの New Channel Name においてチャンネルの作成を行うことができる。

Alternative Text

Fig. 288 チャンネルの作成と選択

New Channel Name の入力欄に新しく追加するチャンネル名を入力する(通常は実験課題番号を入力する)。 装置管理サーバーにおいて連携データベースとの接続を行って実験課題情報を取得している場合、 入力欄に実験課題番号がリストとして表示されるため、そこから選択することもできる(前方検索でリストを絞ることができる)。 必要があれば実験課題番号を修正し、 Add ボタンを押下すると、ワークスペースに新しいチャンネルが作成される。

Note

Slackのチャンネル名には大文字を使用することができないため、大文字を入力した場合には自動的に小文字に変換される。

チャンネルの選択

Slack API Settings パネルの Channels リストにおいてチャンネルの選択を行うことができる。 チャンネルを変更すると、メッセージの投稿先がそのチャンネルに変更される。 リストには統合制御サーバーで作成したチャンネルが含まれており、チャンネルを選択して Change ボタンを押下することで設定される。 チャンネルを変更すると、 Channel Name (Proposal No.) にそのチャンネル名が表示される。

チャンネルへのユーザーの招待補助機能

Slackの料金プランによっては、Web APIからゲストユーザーを直接的に追加することができない場合があるため、 各チャンネルへのユーザーの招待および追加は手動で行うこととしている。

そのため、ユーザーの招待を補助する機能として、指定したチャンネルにユーザーの招待を促すメッセージを投稿する機能を作成した。

Alternative Text

Fig. 289 ユーザーの招待補助機能

Slack API Settings パネルの Posting channel for inviting member においてメッセージの投稿先のチャンネルを設定する。 投稿先のチャンネルは現在選択されているチャンネルがデフォルトだが、任意のチャンネル(#generalなど)を選択することができる。 Change ボタンを押下すると招待を促すメッセージの投稿先が変更される。

Slack API Settings パネルの Invite Member において招待したいユーザーの情報を登録する。

  • Name & E-mail

    ユーザーの名前とメールアドレスを入力する。 ボタンでユーザーを追加、 ボタンでユーザーを削除することができる。

  • Message (optional)

    投稿するメッセージに文言を追加する(任意)。

Request for invitation ボタンを押下すると、指定したチャンネルに招待を促すメッセージが投稿される。

Alternative Text

Fig. 290 ユーザーの招待を促すメッセージ

チャンネルユーザーの表示

Slack API Settings パネルの Invite Member にある Update ボタンを押下すると、 現在選択されているチャンネルに参加しているユーザーの情報が表として表示される。

Note

招待されたユーザーがいつチャンネルに参加するかは、統合制御サーバーからはわからないので、 Update ボタンで情報を更新する必要がある。

Slack連携機能の有効化

Slack API Settings パネルの Service ボタンを切り替え、 Apply ボタンを押下することで、Slack連携機能のOn/Offを切り替えることができる。

  • On

    Slack連携機能を有効化する。現在選択されているチャンネルにメッセージが投稿される。

  • Off

    Slack連携機能を無効化する。メッセージ投稿が停止する。

Alternative Text

Fig. 291 Slack連携機能のOn/Off

Note

統合制御サーバーを再起動した場合、意図しないメッセージ投稿を避けるため、Slack連携機能は自動的にOffになる。

投稿の設定

投稿に関する設定は管理者だけではなく、すべてのユーザーが行うことができる。 ただし、投稿自体のOn/Offは管理者のみ設定することができる。

イベントの選択

投稿するイベントの種類を選択する。選択されたイベントは、そのイベントが起きたタイミングでメッセージが投稿される。

Alternative Text

Fig. 292 投稿するイベントの選択

投稿したいイベントにチェックを付ける。それぞれのイベントの意味を Table 100 に示す。

Table 100 イベントの種類

イベント名

説明

Begin

測定の開始

End

測定の終了

Apply

デバイスへのパラメータ送信

Sequence progress

シーケンスの進捗(コマンドの開始や終了など)

Error

デバイス、測定、DAQにおけるエラー

ページ下部の Apply ボタンを押下すると設定が反映される(他の投稿設定の項目と一括で反映できる)。

デバイスの選択

選択したデバイスのステータスを投稿することができる。メッセージは指定した周期で投稿される。

Interval に投稿する周期(秒)を入力する。

表にはデバイスの一覧が表示される( Scan Devices で更新する必要がある)。 Post にチェックを付けると、そのデバイスのステータスが投稿されるようになる。

Alternative Text

Fig. 293 投稿するデバイスと周期の選択

ページ下部の Apply ボタンを押下すると設定が反映される(他の投稿設定の項目と一括で反映できる)。

投稿モードの選択

投稿のモードを選択する。それぞれのモードの説明を Table 101 に示す。

Alternative Text

Fig. 294 投稿モードの選択

Table 101 モードの種類

モード

説明

Text

ステータス情報を文字列で投稿する

Image

ステータス情報を画像で投稿する

Both

TextとImageの両方で投稿する

ページ下部の Apply ボタンを押下すると設定が反映される(他の投稿設定の項目と一括で反映できる)。

Imageモードで画像を投稿する場合、統合制御サーバーを起動している計算機にwkhtmltoimageをインストールする必要がある (下記のコマンドはCentOS7にインストールする場合)。

$ sudo yum install xorg-x11-fonts-75dpi
$ sudo yum install xorg-x11-fonts-Type1
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm
$ sudo rpm -ivh wkhtmltox-0.12.6-1.centos7.x86_64.rpm