🐡

Bolt for Java を Scalaで動かす

2022/02/13に公開

この記事

以下公式をScalaで動かしてみたので共有
https://slack.dev/java-slack-sdk/guides/ja/getting-started-with-bolt-socket-mode

準備

  • IntellijでScala & sbtでプロジェクトを作成する
  • Slackアプリを作っておく

コード

// build.sbt
libraryDependencies += "com.slack.api" % "bolt" % "1.18.0"
libraryDependencies += "com.slack.api" % "bolt-socket-mode" % "1.18.0"
libraryDependencies += "javax.websocket" % "javax.websocket-api" % "1.1"
libraryDependencies += "org.glassfish.tyrus.bundles" % "tyrus-standalone-client" % "1.17"
// src/main/scala/Main.scala
import com.slack.api.bolt.App
import com.slack.api.bolt.handler.builtin.SlashCommandHandler
import com.slack.api.bolt.socket_mode.SocketModeApp

object Main {
  def main(args: Array[String]): Unit = {
    val app = new App()
    val slashCommandHandler: SlashCommandHandler = (req, ctx) => {
      ctx.ack(":wave: Hello!")
    }
    app.command("/hello", slashCommandHandler)
    new SocketModeApp(app).start()
  }
}

環境変数の設定方法

  • sbtタスクを追加

  • 手動で環境変数を追加する

作成したタスクをRunすれば動作。

Discussion