Simple Slack APIを使ってSlackへHello World!
「Simple Slack API」を使ってJavaでSlackへHello Worldをする。Slackへメッセージが送れればアプリケーションのエラー通知など、いろいろ応用できそう。
概要
最近はSlackも定着してきたので、Java→Slackでメッセージの送り方をまとめる(Hello Worldを送るまで)。Slackへのメッセージ送信はアプリケーションのエラー通知など、いろいろ使えそう。
ライブラリは「Simple Slack API」を利用する。Simple Slack APIはSlackのWeb APIのラッパー。Maven Centralにも登録されている。これが決定版かどうかまでは判断できないが、とりあえずはよさそうなので利用する。SlackはWeb APIがしっかりしているのでそちらを頑張るでもよいかも。
-
Simple Slack API
-
GitHub url: https://github.com/Ullink/simple-slack-api
-
下準備
Slackへプログラム経由でHello Worldするには、まずBotユーザーが必要なので作成する。BotユーザーにAPI Tokenが発行されるのでそれによって認証される。またメッセージを送るチャンネルも必要なるので作る。
Botの作成
2人目以降であればConfigure Appsのページ(https://my.slack.com/apps/manage)からBotを作成できるが、最初のBot作成ページへ直接行く(行かなければならない)。
手順
-
Bot作成ページへ行く。
https://my.slack.com/services/new/bot -
Botユーザー名を入力して次へ。
-
Botの設定ページが表示されるので、これでOK。
表示されているAPI Tokenをプログラムで利用する(あとから確認することも可能)。
Channelの作成とBotのメンバー登録
Botユーザーを作成してもメッセージをどこに送るかということになるので、送り先のChannelを作成する。Botもメンバー登録されていないとそのChannelにメッセージを送れない(らしい)ので、メンバー登録もする。
これらのChannel作成とメンバー登録は通常のSlack操作で可能(特別なことはない)。
手順
-
Channelを作成する。
-
ChannelのメンバーにBotを追加する。これでOK。
Simple Slack APIでHello World!
いよいよ本題。といっても難しくない。 Simple Slack APIはMaven Centralにも登録されているのでMavenにdependencyを追加するだけ。コードも難しくない。
実際にメッセージが届けばOK。
<!-- Simple Slack API -->
<dependency>
<groupId>com.ullink.slack</groupId>
<artifactId>simpleslackapi</artifactId>
<version>0.6.0</version>
</dependency>
public static void main(String[] args) throws IOException {
// BotのAPI Tokenを設定
SlackSession session = SlackSessionFactory.createWebSocketSlackSession("xoxb-**********");
session.connect();
SlackChannel channel = session.findChannelByName("bot-test-channel");
String message = "Hello World!";
session.sendMessage(channel, message);
session.disconnect();
}
次のようにメッセージが届けばOK。
Appendix A: 参考
Appendix B: 改訂履歴
-
v1.0, 2017-04-12: 初稿