전체적인 명령어를 지원하는 봇을 만들기 전에 간단한 봇을 만들도록 하자. 여기서 사용하는 언어는 Lua script로 게임에서 많이 쓰인다고 한다.
telegram에서 lua script를 적용시키는 방법은 간단하다. 터미널 상에서 "<telegram-cli의 경로> -s <lua script의 파일 위치>" 이런 식의 문법을 이용하면 된다.
이 스크립트는 누군가로부터 hello라는 메시지를 전달받으면 world라는 메시지를 답장으로 보내주는 봇의 스크립트이다.
function on_msg_receive(msg) if(msg.text=="hello") then mark_read(msg.from.print_name, ok_cb, false) send_msg(msg.from.print_name, "world", ok_cb, false) end end function ok_cb(extra, succes, result) end
여기서 mark_read의 경우에는 받은 메시지를 읽었다고 표시해주는 함수이고, send_msg의 경우에는 메시지를 보내는 함수이다. 이렇게 작성한 내용을 bot.lua라고 저장을 한다.(편의상 저장위치를 처음 (1)에서 압축을 풀었던 폴더로 생각한다.)
그리고 터미널 창에서
bin/telegram-cli -s bot.lua
라고 입력을 하면 세팅이 끝난 것이다. 이제 시험삼아서 봇에게 hello라는 메시지를 전달해보자. 그러면 hello라는 메시지를 수신할 때마다 메시지를 읽었다고 표시가 되고 또한 world라는 메시지를 받을 수 있다.
그런데 만약 봇에게 Hello라고 메시지를 보내면 아무런 반응이 없게 된다.
즉, 여기서 좀 더 추가를 한다면 입력받은 문자의 대소문자를 구분하지 않도록 하는 편이 접근성 측면에서 좋기 때문에(대부분의 휴대폰이 처음 영어를 치면 대문자로 나오기 때문) 이 기능을 추가해주도록 하자. lua script에서 전부 소문자로 바꾸어주는 함수가 string.lower()이므로 이를 이용해서 위의 스크립트를 수정할 수 있다.
function on_msg_receive(msg) if(string.lower(msg.text)=="hello") then mark_read(msg.from.print_name, ok_cb, false) send_msg(msg.from.print_name, "world", ok_cb, false) end end function ok_cb(extra, succes, result) end
이 스크립트도 위에서 한 방식대로 스크립트를 실행한 후에 봇에게 메시지를 보내 결과를 확인해보자.
'컴퓨터 > 기타' 카테고리의 다른 글
도서 바코드 인식기 프로그램 제작 (2) (0) | 2016.01.26 |
---|---|
도서 바코드 인식기 프로그램 제작 (1) (3) | 2016.01.23 |
Project 1.0 telegram 봇 제작하기.(3) (0) | 2015.01.08 |
Project 1.0 telegram 봇 제작하기.(1) (0) | 2014.10.30 |
Project 1.0 telegram 봇 제작하기.(0) (0) | 2014.10.30 |