webex-java-sdk 및 Spring을 사용하는 WebEx 봇. 1 부

6853 단어 javawebexbotsdk
Webex 채팅을 사용하려면 https://developer.webex.com/에서 Webex 계정에 등록해야 합니다.

봇 역할을 할 WebEx 앱 만들기



https://developer.webex.com/my-apps으로 이동하여 봇 역할을 할 앱을 만듭니다.



스프링 자바 앱 만들기



Spring을 반드시 사용해야 하는 것은 아닙니다. Java 프레임워크로 Web App을 만드는 모든 방법이 가능합니다. 또한 서버리스 앱 또는 람다를 사용하여 코드를 호스팅할 수 있습니다.

우리는 Spring Boot 앱을 사용할 것입니다:
  • 그루비
  • 그레이들
  • 스프링 웹
  • Gson(JSON 구문 분석)
  • Jsoup(HTML 메시지 구문 분석)

  • Gradle 종속성 코드:

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-actuator'  
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'javax.json:javax.json-api:1.1.4'
        implementation 'org.glassfish:javax.json:1.1'
        implementation 'com.google.code.gson:gson:2.8.9'
        implementation('org.jsoup:jsoup:1.14.3')
        implementation 'org.codehaus.groovy:groovy'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    


    스파크 SDK 설치



    Webex와 상호 작용하고 HTTP 호출을 사용하기 위해 모델 및 서비스를 생성하지 않으려면 WebEx Java SDK(https://github.com/webex/webex-java-sdk(Spark Java SDK))를 사용할 수 있습니다.
    Gradle을 통해 설치할 수 있습니다. gradle install을 사용하여 maven repos에서 로컬로 코드를 찾습니다.

    앱 코드



    계정의 WebEx에 존재하는 WebEx Room과 상호 작용할 RoomService를 생성합니다.

    RoomService.groovy

    import com.anma.wbb.webexbotbsg.Room
    
    interface RoomService {
    
        List<Room> getRooms(teamId, type, sortBy, max);
        public Room getRoom(String id);
    
    }
    


    RoomService 인터페이스를 구현하는 RoomServiceImpl 클래스

    import com.anma.wbb.webexbotbsg.Room
    import com.anma.wbb.webexbotbsg.Spark
    import org.springframework.stereotype.Service
    
    @Service
    class RoomServiceImpl implements RoomService {
    
        String testBot = System.getenv("WEBEX_TEST_BOT");
        String myToken = System.getenv("WEBEX_MY_TOKEN");
    
        Spark spark = Spark.builder()
                .baseUrl(URI.create("https://api.ciscospark.com/v1"))
                .accessToken(bsgBot)
                .build();
    
        @Override
        public Room getRoom(String id) {
            Room room = spark.rooms().path("/${id}").get()
            return room
        }
    
        @Override
        List<Room> getRooms(teamId, type, sortBy, max) {
    
            List<Room> rooms = new ArrayList<>()
            spark.rooms()
                    .iterate()
                    .forEachRemaining(room -> {
    //                    System.out.println(room.getTitle() + ", created " + room.getCreated() + ": " + room.getId());
                        rooms.add(room)
                    })
    
            return rooms
        }
    }
    


    이제 방을 가져오는 서비스와 그 구현이 있습니다. 방에 있는 메시지와 상호 작용할 서비스를 추가할 수도 있습니다.

    좋은 웹페이지 즐겨찾기