Boot-スナイケBootのバインド


機能の定義

  • コンビネーションがスラックスと連動している場合、コンビネーションメンバーの状態がSlack Botで表示されます!
  • 1.Snak Appの作成


    https://api.slack.com/Slak Botの作成
  • App Nameとワークスペースの選択
    -AppNameは後で変更可能
    -ワークスペースがないとappを作成できません!
    →複数ワークスペースで使用するbotを開発する場合は、作成後に配布を設定する必要があります

    作成後にBotsを選択!
  • Scopeの適用



    Review Scopesを追加したら、必要なScopeを選択します!
  • このアプリケーションはチャンネルにのみ情報を送信する.Bot Token Scopeschat:write万設置
  • https://api.slack.com/scopes←scope説明
  • Workspaceでのインストール



  • Scope設定が完了すると、Install to Workspaceがアクティブになります.
  • インストールが完了すると、コインが書かれたページが表示されます.
  • 2.Spring Boot設定


    https://slack.dev/java-slack-sdk/guides/getting-started-with-bolt#gradle参考
    Gradle環境の設定

    build.gradle

    dependencies {
    	implementation("com.slack.api:bolt:1.18.0")
    	implementation("com.slack.api:bolt-servlet:1.18.0")
    	implementation("com.slack.api:bolt-jetty:1.18.0")
    }

    application.yml

    slack:
    	token: 'xoxb-발급받은 토큰'
    	channel: '#채널명'

    NotificationService

    import org.springframework.beans.factory.annotation.Value;
    
    @Value(value = "${slack.token}")
    String token;
    @Value(value = "${slack.channel}")
    String channel;
    private void sendSlackMessage(String username, Boolean activate) {
            String message = (activate)? "> :writing_hand: *["+username+"]* 님이 업무 집중을 시작했어요!"
                                        : "> :raised_hands: *["+username+"]* 님이 쉬고 있어요!";
            try{
    
                MethodsClient methods = Slack.getInstance().methods(token);
                ChatPostMessageRequest request = ChatPostMessageRequest.builder()
                        .channel(channel)
                        .text(message)
                        .build();
    
                methods.chatPostMessage(request);
    
            }catch (Exception e){
                throw new CustomException(ErrorCode.FAIL_SEND_SLACK);
            }
        }
  • Snake Messageは句読点法をサポートしており、テキストに適しています!
    (いくつかの異なるタグダウンロード文法があるので、必ず公式サイトで確認してください…!)
  • https://api.slack.com/methods/chat.postMessage/test
    実際のメッセージ形式を表示するためのページ
  • 結果