ヘッダー画像

【Slack API】Java17でSlack APIを使うには?

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=&lt;@XXXXXXXX&gt;\nはじめまして\nよろしく!'

GitHubにもメソッド版を上げています。

そちらも参考にどうぞ。

まとめ

PHPやcurlは検索すれば出てくるとは思いますが、Javaが思ったより出てこなかったので書いてみました。

どうすれば出来るかを考えるのは楽しいです!

仕組みさえわかれば、どうにかなるもんですね。

以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント

この記事のコメントはありません。