slackAPIを使ってフォームから取得した内容をBotに発言させてみた
はじめに
お問い合わせフォームで入力した内容をSlackに送信してみようとおもい作ってみました。
ポートフォリオの一部です
流れ
ライブラリ追加
Maven Repository: com.ullink.slack » simpleslackapi » 1.2.0
compile group: 'com.ullink.slack', name: 'simpleslackapi', version: '1.2.0'
Botの作成してAPI Tokenの取得する
ここからBotを作成
作成後API Tokenが発行される
Botが話すスペースの提供
作成したBotは既にどこかのワークスペースに存在してるので、チャンネルに誘う
コーディング
- post送信時に処理するコントローラー
- 入力された値をslackに出力するサービス
- フロント側
コントローラー
@PostMapping("/contact") String postContact(@RequestParam("name") String name, @RequestParam("email") String email, @RequestParam("message") String message) throws Exception{ slackBotService.connect(name,email,message); return "redirect:/inquiry/contact"; }
サービス
Slackの接続処理はサービスに切り分けました
@Service public class SlackBotService { public void connect(String name,String email,String msg)throws IOException{ // API Tokenを入力 SlackSession session = SlackSessionFactory.createWebSocketSlackSession("xoxb-xxx"); session.connect(); // findChannelByNameにBotが存在してるchannel名を記入 SlackChannel channel = session.findChannelByName("bot"); String message = "===================================="+"\n" + "名前 : "+name+"\n" + "メール : "+email+"\n" + "メッセージ : "+msg+ "\n" +"===================================="; session.sendMessage(channel, message); session.disconnect(); } }
フロント
別記事で記述
まだバリデーションかけてないので、かけたり他のページを作成していきたいと思います!