API 1.0 개요NAVER WORKS에서 제공하는 API의 종류와 인증 방식을 설명한다. 동영상 가이드NAVER WORKS Bot Platform API는 서비스 API와 서버 API 두 가지 종류로 나뉜다. 자세한 내용은 각 API 명세에서 기술한다. 종류가 명시되지 않은 API는 서비스 API이다. 서비스 API사용자가 로그인한 후 사용할 수 있는 API로, 본인의 데이터에만 접근할 수 있다. 단, 캘린더의 "다른 사람의 일정 목록 조회" API처럼, 도메인 내 다른 사용자의 데이터에 접근 가능한 API도 일부 존재한다. 서버 API사용자의 로그인 없이 사용할 수 있는 API로, 도메인 내 모든 사용자의 데이터에 접근할 수 있다. 대표적으로 조직 연동과 마이그레이션 API가 서버 API이다. API 인증서비스 API와 서버 API는 모두 OAuth 2.0을 기반으로 하지만, 인증 방식은 서로 다르다. 서비스 API 인증 방식서비스 API의 인증 방식은 다음과 같다. 그림 1 서비스 API 인증 방식
서버 API 인증 방식서버 API 인증 방식은 다음과 같다. 그림 2 서버 API 인증 방식
업데이트 된 답글입니다. Bot API는 Sandbox 환경에서는 제공되지 않으며, 운영 환경에서 테스트를 진행해주셔야 합니다. Bot API는 서버 API이며 Developers에서 Bot을 생성하시고 [메시지 전송(Text) Request URL 형식] 그리고 공유주신 캡쳐화면을 보면 브라우저에서 URL을 입력해주셨는데 그 방식으로는 API를 연동하실 수 없습니다. 직접적인 샘플코드를 제공하고 있지 않지만 서비스 API 토큰을 획득하는 자바 예제를 아래 링크에서 확인하실 수 있으니 참고하시기 바랍니다. https://developers.worksmobile.com/kr/document/2002003?lang=ko 환경- Mac OS - Eclipse 202009 버전 - 당연히 Spring Plugin 도 설치 했다. 신규 프로젝트 생성Wizards 에서 Spring 으로 검색하여 나오는 Spring Starter Project 로 진행 ↓다른건 딱히 뭐 고칠께 없어서 걍 밑에 각 항목 별 텍스트 정도면 잘 넣어준다. (기존에 message 로 만들어 놓은게 있다보니 샘플로 message1로 했다.) ↓당장 필요한 Dependencies 만 몇개 걸어준다. - Spring Boot DevTools : 서버 실행해놓고 소스 고치면 알아서 자동 적용해주는 기능이 있어서 사용한다. - Lombok : 모델 Bean 클래스 파일에 get, set 넣기 귀찮아서 넣었다. ( Log 어노테이션도 이거 참조 한다. ) - Spring Web : 웹서비스 형태로 만들거라서 넣었다. 생성된 프로젝트 구조- 아래와 같이 네이버 웍스 Developers Console 에서 다운로드 받은 서버ID 방식 비밀키 파일을 resources 에 복사한다. - 각각 controller, model, service, util 패키지를 만들어 준다. - Java 파일 구조 설명 > MessageApplication.java => 실행 파일 > controller.MessageRestController.java => 메시지 내용 입력받는 API > model.Message.java => 메시지 전송용 모델(Controller 에서 입력 받은 데이터를 이 객체에다가 매핑 한다.) > model.NaverWorksInfo.java => 네이버웍스 API 호출 하기 위한 키값, URL 정보를 저장 한다. > service.MessageService.java => 네이버웍스 메시지 전송 API 를 호출한다. > service.NaverWorksTokenService.java => 네이버웍스 API를 호출하기 위한 Token을 발급 받는다. > util.RSAUtils.java => 비밀키 파일을 읽어서 암호화 키로 만드는 역할을 한다. - Resources 파일 구조 설명 > application.properties => 네이버웍스 연동 키 정보들을 넣어놨다. > private.key => 네이버웍스 Developers Console 에서 다운로드 받은 파일이다 (서버 Token 발급 받는 용도) 파일별 소스 내용Dependency - pom.xml
API 호출 하기 위한 정보 저장 - src/main/resources/application.properties
네이버웍스 개발자 콘솔에서 다운로드 받은 비밀키파일 - src/main/resources/private.key
키 생성 - com.naverworks.message.util.RSAUtils.java
연동 키정보 저장 - com.naverworks.message.model.NaverWorksInfo.java
메시지 전송 데이타 저장 - com.naverworks.message.model.Message.java
서버 Token 발급 서비스 - com.naverworks.message.service.NaverWorksTokenService.java - 참고 : https://developers.worksmobile.com/kr/document/4002002?lang=ko
메시지 전송 서비스 - com.naverworks.message.service.MessageService.java - 참고 : https://developers.worksmobile.com/kr/document/1005008?lang=ko
메시지 데이타 입력 받을 컨트롤러 - com.naverworks.message.controller.MessageRestController.java - 입력 값 > Request-Url : http://localhost:8080/message/sendMessage > Method : post > Content-type : application/json > Body-Entity : {"botNo":"2153041","text":"Hi~!!","targets":["loveleejs1@jongsuk"]}
호출 테스트postman 을 이용해서 테스트해 봤다. 호출 결과로그 결과 - 실패
- 성공
네이버웍스 PC 앱에서 결과 확인 |