Initial commit
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
= 메신저
|
||||
|
||||
== 개요
|
||||
Knox Portal에서 제공하는 메신저 관련 Rest API 를 이용한 연계 서비스 제공
|
||||
|
||||
=== Knox REST API 연계 서비스 신청
|
||||
Knox REST API 연계 서비스 신청은 <<_knox_rest_api_연계_서비스_신청,Knox REST API 연계 서비스 신청>> 항목을 참조한다.
|
||||
|
||||
=== Knox Rest 메신저 연계 설정
|
||||
메일, 결재 Knox Rest API 연계와 마찬가지로 연계를 위한 사전 준비가 되었다면, knox.properties 에 메신저 관련 설정이 되어 있는지 확인한다.
|
||||
|
||||
.knox.properties
|
||||
[source,properties]
|
||||
----
|
||||
knox.messenger.contact-service=/messenger/contact/api/v1.0
|
||||
knox.messenger.msgctx-service=/messenger/msgctx/api/v1.0
|
||||
knox.messenger.message-service=/messenger/message/api/v1.0
|
||||
----
|
||||
|
||||
=== Knox 메신저 연계 서비스
|
||||
REST를 통해서 메신저와 연계하는 서비스로 주요 메서드는 KnoxMessengerService 인터페이스에 정의되어 있다.
|
||||
|
||||
[source, java]
|
||||
----
|
||||
public interface KnoxMessengerService {
|
||||
|
||||
/**
|
||||
* 디바이스 ID 조회 : 사용자 ID 와 맵핑되는 단말의 ID 값
|
||||
* @return 디바이스 ID
|
||||
*/
|
||||
String getDeviceId();
|
||||
|
||||
/**
|
||||
* 메시지 암호화 키 조회 : 메시지를 암호화하기 위한 키 값
|
||||
* @param deviceId 디바이스 ID
|
||||
* @return 메시지 암호화 키
|
||||
*/
|
||||
String getKey(String deviceId);
|
||||
|
||||
/**
|
||||
* Knox Potal login ID를 이용하여 Knox Messenger 수신자들을 조회한다.
|
||||
* @param deviceId 디바이스 ID
|
||||
* @param singleIds 수신자 Knox ID 리스트
|
||||
* @return Knox Messenger 수신자 ID 리스트
|
||||
*/
|
||||
List<String> getUserIds(String deviceId, List<String> singleIds);
|
||||
|
||||
/**
|
||||
* 공지 메시지를 발신할 대화방이 없는 경우 신규 대화방 생성을 요청한다.
|
||||
* @param deviceId 디바이스 ID
|
||||
* @param key 암호화 키
|
||||
* @param userIds Knox Messenger 수신자 ID 리스트
|
||||
* @return 대화방 생성 요청 응답 결과
|
||||
*/
|
||||
Map<String, Object> createChatroom(String deviceId, String key, List<String> userIds);
|
||||
|
||||
/**
|
||||
* Message 서버 API 에서 필요한 암호화된 바디를 만들기 위한 function
|
||||
* @param key - msgCtx 를 통해 전달받은 key 값
|
||||
* @param body - 암호화 해야 될 String
|
||||
* @return 암호화된 String
|
||||
*/
|
||||
String encrypt(String key, String body);
|
||||
|
||||
/**
|
||||
* Response 로 전달된 암호화 body 를 복호화 하기 위한 function <br/>
|
||||
* 암호화의 역순으로 Base64 복호화 -> AES256 복호화
|
||||
* @param body - 암호화 되어 있는 body
|
||||
* @return 복호화된 response String
|
||||
*/
|
||||
String decrypt(String body);
|
||||
|
||||
/**
|
||||
* 신규 생성한 대화방 또는 기존에 사용중인 대화방에 공지 메시지를 발송한다.
|
||||
* @param deviceId 디바이스 ID
|
||||
* @param key 암호화 키
|
||||
* @param chatroomId 생성된 대화방 ID
|
||||
* @param chatMsg 메시지 내용
|
||||
* @return 메시지 발신 요청 응답 결과
|
||||
*/
|
||||
Map<String, Object> chat(String deviceId, String key, String chatroomId, String chatMsg);
|
||||
}
|
||||
----
|
||||
|
||||
자세한 API 스펙은 Swagger API 문서의 knox-messenger-controller 항목을 참고한다.
|
||||
Reference in New Issue
Block a user