로코 가이드 1. Node.js 설치하기 2. Node.js 프로젝트 생성(원하는 경로에 폴더 생성 후 Node.js 명령창의 해당 위치에서 npm init을 친다) 3. Node.js 명령창의 프로젝트 폴더 경로에서 npm install node-kakao 명령어로 모듈을 설치한다. 4. 이후 node_modules 폴더와 package.json, package-lock.json 파일이 생성된다. node_modules 폴더와 같은 위치에 index.js를 생성한다. (메인 코드) 5. 디바이스의 uuid값이 필요하다. 1) 컴퓨터 카카오톡 설치 후 인증을 받아 로그인한다. 2) 컴톡에서 로그인 또는 로그아웃 직후 작업관리자에서 덤프파일 생성을 한다. 3) 레지스트리 편집기에서 "컴퓨터\HKEY_CURRENT_USER\Software\Kakao\KakaoTalk\DeviceInfo\날짜" 항목에 들어간 다음 dev_id값을 찾는다. 4) 덤프파일을 헥스에디터로 연 다음 dev_id값을 찾는다.(없으면 다시 생성해야함) dev_id값이 찾아지면 그 뒤에 추가로 텍스트 내용이 있는데 이 값을 ==가 있는 부분까지 쭉 복사를 한다. 5) 복사된 값이 디바이스의 uuid값이다. (dev_id 시작부분 부터 ==까지) 6. index.js 파일을 생성하고 base 코드를 입력한다. //const LOCO = require('@storycraft/node-kakao'); const LOCO = require('node-kakao') const fs = require('fs') const cp = require('child_process') //stable(3.1) let client = new LOCO.TalkClient('DESKTOP_NAME','clientUUID'); //컴퓨터 이름, 봇 계정 컴 톡의 uuid client.login('clientId','clientPw') //봇 계정 ID, 봇 계정 PW //stable(3.0.3) //let client = new LOCO.TalkClient('DESKTOP_NAME'); //컴퓨터 이름 //client.login('clientId','clientPw','clientUUID') //봇 계정 ID, 봇 계정 PW, 봇 계정 컴 톡의 uuid client.on('message', (chat) => { let userInfo = chat.Channel.getUserInfo(chat.Sender); if (!userInfo) return; if (chat.Type === LOCO.ChatType.Search) { let attachment = chat.AttachmentList[0]; chat.replyText(`${userInfo.Nickname}님이 샵 검색 전송 ${attachment.Question}. 리다이렉트 경로: ${attachment.RedirectURL}`); } if (chat.Text === '안녕하세요') { chat.replyText('안녕하세요 '); // 일반 채팅 chat.replyText('안녕하세요 ', new LOCO.ChatMention(userInfo)); // Ex) 안녕하세요 @storycraft chat.Channel.sendTemplate(new LOCO.AttachmentTemplate(LOCO.ReplyAttachment.fromChat(chat), '안녕하세요 ')); // 답장형식 } /* //Super Eval //your user id : 관리자 아이디 if((chat.Sender.id==your user id) && chat.Text.indexOf("~")==0){ try{ chat.replyText(String(eval(chat.Text.substr(1)))); }catch(e){ chat.replyText(e+'\n'+String.fromCharCode(8237).repeat(500)+e.stack) } } */ console.log(chat.Sender.id+" "+userInfo.Nickname+":"+chat.Text+"\n"+chat.attachmentList.map(v=>v.$).join("\n") ) blankFunc(chat) }); //client.on('message_read', (channel, reader, watermark) => { // console.log(channel.getUserInfo(reader).Nickname + ' 이(가) ' + channel.Id + ' 방의 글을 읽었습니다. 워터마크: ' + watermark); //}); function blankFunc(chat){} function cmd(_cmd){ let cmdResult; try{ cmdResult = cp.execSync(_cmd,{shell:"/bin/bash"}).toString() }catch(e){ cmdResult = e.toString() } return cmdResult.replace(/\u001b\[\d\dm/g,"") } Object.defineProperty(Object.prototype,"$", { get:function(){ var self=this; return Object.getOwnPropertyNames(this).map(v=>{ try{ return v+" : "+self[v] }catch(e){ } return v+" : error" }).join("\n"); } }); Object.defineProperty(Object.prototype,"$$", { get:function(){ var self=this; return Object.getOwnPropertyNames(this.__proto__).map(v=>{ try{ return v+" : "+self[v] }catch(e){ } return v+" : error" }).join("\n"); } }); 7. cmd창을 프로젝트 폴더로 경로 이동을 한 다음, node index.js를 쳐준다. 8. cmd창에는 사람들의 id, 닉네임, 채팅 내용이 뜬다. 또한 작성한 코드에 따라서 봇이 반응을 하게 된다. 9. 이제 세부 기능들을 추가해보자!