Violet's Devblog
메신저봇 가이드 - 소개 본문
연관 문서
메신저봇이란
메신저봇은 카카오톡, 라인, 페이스북 메신저 등 다양한 메신저에 자동으로 응답할 수 있도록 해주는 어플리케이션입니다.
작동 방식
메신저봇은 NotificationListenerService
를 통해 알림을 파싱한 후, Rhino JavaScript Engine을 사용하여 사용자가 작성한 자바스크립트로 알림 정보를 전달하여 처리할 수 있도록 합니다. (따라서, 자바스크립트를 모르는 분들은 애석하게도 이 앱을 활용하려면 자바스크립트에 대해 먼저 배우셔야 합니다.)
답장은 최종적으로 WearableExtender
를 활용해 하게 됩니다.
스크립트 작성 방법 - 레거시(구형; 신형은 아직 준비중!)
다음과 같이 room, msg, sender, isGroupChat, replier, imageDB, packageName의 순서대로 매개변수를 받는 함수 response를 선언합니다.
/* string room: 방 이름
* string msg: 메시지 내용
* string sender: 전송자 이름
* boolean isGroupChat: 단체채팅방 여부
* SessionCacheReplier replier: 채팅방의 정보를 담고 있으며, 알림을 받은 채팅방으로 답장을 할 수 있도록 하는 객체
* - replier.reply(방_이름, 메시지, hideToast = false) 특정 방에 메시지를 보냄.
* hideToast는 아직 정보를 얻지 못한 채팅방으로 전송하려고 할 때 발생하는 토스트 경고 메시지를 생략할것인지에 대한 여부, 기본값은 false
* - replier.reply(메시지) replier가 담고 있는 채팅방에 메시지를 보냄.
* ImageDB imageDB: 이미지 정보를 담고 있는 객체(후술)
* string packageName: 알림을 띄운 메신저앱의 패키지 이름 (예컨대, 카카오톡의 경우 com.kakao.talk)
*/
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName){
if(room == "테스트방"){
if(msg == "테스트!"){
replier.reply("답장하는 법 1");
Api.replyRoom(room, "답장하는 법 2");
}
}
}
response함수는 사용자가 알림을 분석하도록 설정한 메신저 앱에서(기본적으로 카카오톡으로 설정되어 있음) 메시지가 포함된 알림을 띄웠을 때 호출됩니다.
주의: replier 객체는 절대 전역변수로 복사해서 안됩니다. 메신저봇은 각각의 메시지를 비동기적으로 처리하기 때문에, 예상치 못한 채팅방으로 답장이 튀어버리는 기이한 상황이 벌어질 수 있기 때문입니다. response함수 밖에서 답장 기능을 사용하려면 Api.replyRoom을 사용하세요.
레거시(구형) API 리스트
레거시 이벤트 리스너
'Android > 메신저봇' 카테고리의 다른 글
메신저봇R v0.3.1a 패치노트 (0) | 2019.10.06 |
---|---|
메신저봇R v0.3.0a 패치노트 (0) | 2019.10.06 |
메신저봇 가이드 - 이벤트 리스너(레거시) (13) | 2019.08.10 |
메신저봇 가이드 - API(레거시) (42) | 2019.07.28 |
MessengerBotR Privacy Policy (0) | 2019.07.21 |
Comments