【Slack API】Java17でSlack APIを使うには?
投稿 2023年9月9日
最終更新 2023年9月9日
専門用語多め
JavaでSlack API
Slack APIをJavaで実行します。
バージョンはJava17です。
curlやSDKなどでやっている記事はいくつかありますが、
Javaでやっている記事が見当たらなかったので、やってみました。
前提
Slack APIの実行環境は、整っている前提で話を進めます。
※curlなどでSlack APIをたたける前提
もしまだ環境が整っていない方は、整えてからご覧ください。
コード
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class SlackAPI {
public static void main(String[] args) {
// アクセストークン
String token = "xxxxxxxxxxxxxxxxxxxxxxxxx";
// チャンネルID(窓)
String channelId = "0000000000000000000";
// メンションID(宛先)
String mentionId = "1111111111111111111";
// 送信したいメッセージ
String msg = "はじめまして\nよろしく!";
// リクエスト用に成形
String apiUrl = "https://slack.com/api/chat.postMessage";
StringBuilder content = new StringBuilder();
content.append("token=").append(token).append("&");
content.append("channel=").append(channelId).append("&");
content.append("text=");
content.append("<@").append(mentionId).append(">");
content.append("\n").append(msg);
// リクエスト実行
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiUrl))
.header("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
.POST(HttpRequest.BodyPublishers.ofString(content.toString()))
.build();
// レスポンス取得
String response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString())
.body();
System.out.println(response);
}
}
curl
curl --request POST \
--url https://slack.com/api/chat.postMessage \
--data 'token=xoxb-xxxxxxxxxxxxxxx' \
--data 'channel=XXXXXXXXXX' \
--data 'text=<@XXXXXXXX>\nはじめまして\nよろしく!'
リンク
GitHubにもメソッド版を上げています。
そちらも参考にどうぞ。
まとめ
PHPやcurlは検索すれば出てくるとは思いますが、Javaが思ったより出てこなかったので書いてみました。
どうすれば出来るかを考えるのは楽しいです!
仕組みさえわかれば、どうにかなるもんですね。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。