Slack SDK for Java は、 Java の慣用的な方法で Slack プラットフォームをサポートします。 Java で書かれた SDK なので、開発者は Kotlin、Groovy、Scala などのあらゆる JVM 言語で使用できます。
SDK 内には、2 つの異なるモジュールがあります。
既存のサービスで Slack API を呼び出したい場合は、 Slack API クライアントのみを使用することをお勧めします。代わりに、新しい最新のインタラクティブな Slack アプリを開発している場合は、 Boltをお勧めします。このフレームワークにより、開発者は些細なことに煩わされることなく、アプリの重要な部分に集中できるようになります。
Bolt for Java は、最新のプラットフォーム機能を使用して Slack アプリを迅速に構築するための抽象化レイヤーを提供する JVM 上のフレームワークです。詳細な手順については、「Bolt の開始」を参照してください。
package hello ;
import com . slack . api . bolt . App ;
import com . slack . api . bolt . jetty . SlackAppServer ;
public class MyApp {
public static void main ( String [] args ) throws Exception {
// App expects env variables (SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET)
App app = new App ();
app . command ( "/hello" , ( req , ctx ) -> {
return ctx . ack ( ":wave: Hello!" );
});
SlackAppServer server = new SlackAppServer ( app );
server . start (); // http://localhost:3000/slack/events
}
}
ソケット モード対応アプリの場合は、「ボルト入門 (ソケット モード)」を利用できます。
package hello ;
import com . slack . api . bolt . App ;
import com . slack . api . bolt . socket_mode . SocketModeApp ;
public class MyApp {
public static void main ( String [] args ) throws Exception {
// App expects an env variable: SLACK_BOT_TOKEN
App app = new App ();
app . command ( "/hello" , ( req , ctx ) -> {
return ctx . ack ( ":wave: Hello!" );
});
// SocketModeApp expects an env variable: SLACK_APP_TOKEN
new SocketModeApp ( app ). start ();
}
}
lack-api-client には、Slack API にリクエストを送信するための、シンプルで使いやすく、柔軟に構成可能な HTTP クライアントが含まれています。詳細については、「API クライアントの基本」を参照してください。
import com . slack . api . Slack ;
import com . slack . api . methods . response . chat . ChatPostMessageResponse ;
Slack slack = Slack . getInstance ();
String token = System . getenv ( "SLACK_TOKEN" );
ChatPostMessageResponse response = slack . methods ( token ). chatPostMessage ( req -> req
. channel ( "C1234567" ) // Channel ID
. text ( ":wave: Hi from a bot written in Java!" ));
以下の表は、Slack Java SDK で使用可能なすべてのモジュールを示しています。依存関係側の更新以外に変更がないものがある場合でも、すべて同時にリリースされるのと同じ最新バージョンを持っています。
リリースされたすべてのバージョンは、Maven Central リポジトリで入手できます。最新バージョンは次のとおりです。
グループID:アーティファクトId | 説明 |
---|---|
com.slack.api:ボルト | Bolt は、Slack アプリを安全かつ迅速に構築するための抽象化レイヤーを提供するフレームワークです。最も一般的に使用されるサーブレット環境は、すぐに使用できる状態でサポートされています。 |
com.slack.api:ボルトソケットモード | このモジュールは、ソケット モード接続を通じてボルト アプリを実行する便利な方法を提供します。 |
com.slack.api:bolt-jetty | このモジュールは、Java EE 互換の Jetty HTTP サーバー (9.x) 上でボルト アプリを実行する便利な方法を提供します。 |
com.slack.api:bolt-jakarta-jetty | このモジュールは、Jakarta EE 互換の Jetty HTTP サーバー上でボルト アプリを実行する便利な方法を提供します。 |
com.slack.api:bolt-aws-lambda | このモジュールは、AWS API Gateway + Lambda でボルト アプリを実行する便利な方法を提供します。 |
com.slack.api:bolt-google-cloud-functions | このモジュールは、Google Cloud Functions でボルト アプリを実行する便利な方法を提供します。 |
com.slack.api:bolt-micronaut | これは、Micronaut がその上でBolt アプリを実行するためのアダプターです。 |
com.slack.api:ボルト-ヘリドン | これは、Helidon SE 上でBolt アプリを実行するためのアダプターです。 |
com.slack.api:bolt-http4k | これは、ライブラリがサポートする複数のサーバー バックエンドのいずれかで、Bolt アプリを実行するための http4k 用のアダプターです。 |
com.slack.api:bolt-ktor | これは、Ktor 上でボルト アプリを実行するためのアダプターです。 |
グループID:アーティファクトID | 説明 |
---|---|
com.slack.api:slack-api-model | これは、会話、メッセージ、ユーザー、ブロック、サーフェスなどの Slack のコア オブジェクトを表すクラスのコレクションです。これは SDK の重要な部分であるため、他のすべてのモジュールはこれに依存します。 |
com.slack.api:slack-api-model-kotlin-extension | これには、Kotlin ネイティブ DSL 経由でブロック キット構造を定義できる Block Kit Kotlin DSL ビルダーが含まれています。 |
com.slack.api:slack-api-client | これは Slack API クライアントのコレクションです。サポートされているのは、基本 API メソッド、ソケット モード、RTM (リアルタイム メッセージング) API、SCIM API、監査ログ API、およびステータス API です。 |
com.slack.api:slack-api-client-kotlin-extension | これには、さまざまな Slack クライアント メッセージ ビルダーの拡張メソッドが含まれているため、Block Kit Kotlin DSL を Java メッセージ ビルダーで直接シームレスに使用できます。 |
com.slack.api:slack-app-backend | このモジュールは、Slack アプリのサーバー側ハンドラーと、イベント API、インタラクティブ コンポーネント、スラッシュ コマンド、アクション、OAuth フロー用のデータ クラスのセットです。これらは、Bolt フレームワークによってプリミティブ レイヤーの基礎として使用されます。 |
SDK はOpenJDK 8 以降の LTS バージョンをサポートしています。
ユーザーは、すべての LTS バージョンで基本的な CI ビルドを実行して機能を検証した後にすべてのパッチがリリースされ、すべての単体テストが少なくとも最新の LTS バージョンで合格していることを期待できます。すべての OpenJDK ディストリビューションで包括的な検証を実行しているわけではありませんが、すべての OpenJDK ディストリビューションで動作するはずです。
行き詰まった場合は、私たちがお手伝いします。問題を解決するための最善の方法は次のとおりです。
jSlack プロジェクトは @slackapi に転送されました。セキュリティ問題または主要なバグ修正のための jSlack メンテナンス リリースは、 https://github.com/seratch/jslack-maintenance-releases で継続されます。
皆様からのご投稿をお待ちしております。役立つ協力的な方法で貢献する方法については、貢献者ガイドをご覧ください。