• 레퍼런스
  • 자습서
  • Iris

    Iris는 카카오톡과의 상호작용을 자동화하고, 데이터베이스에서 데이터를 추출하며, HTTP 서버를 통해 원격으로 제어하기 위한 서버 어플리케이션입니다. Java로 빌드되었으며 Android 기기에서 실행되도록 설계되었고, 시스템 서비스와 직접적인 데이터베이스 접근을 활용합니다.

    Iris 시작하기

    Iris를 시작하기 위한 설정이 필요합니다. 여기를 참고해 셋업을 완료하세요.

    엔드포인트

    HTTP API 엔드포인트
    POST

    /decrypt
    메시지를 복호화합니다.

    POST

    /query
    카카오톡 데이터베이스에 대한 SQL 쿼리를 실행합니다. 응답에서 암호화된 데이터 필드를 자동으로 복호화합니다.

    POST

    /reply
    방에 텍스트 메시지 또는 이미지를 보냅니다.

    구성 API 엔드포인트
    GET

    /config
    현재 구성을 JSON 응답으로 검색합니다.

    POST

    /config/botport
    봇 HTTP 서버 포트를 업데이트합니다.

    POST

    /config/dbrate
    데이터베이스 폴링 속도를 업데이트합니다.

    POST

    /config/endpoint
    메시지 전달을 위한 웹 서버 엔드포인트를 업데이트합니다.

    POST

    /config/sendrate
    메시지 전송 속도를 업데이트합니다.

    WebSocket 엔드포인트
    POST

    /ws
    WebSocket 연결을 생성합니다. Iris가 메시지를 감지할 경우 해당 엔드포인트로 데이터를 전달합니다.

    메시지 전달을 위한 API 참조

    Iris가 카카오톡 데이터베이스에서 새 메시지를 감지하면 /config 또는 /config/endpoint를 통해 구성된 web_server_endpoint로 POST 요청을 보냅니다. 요청 본문은 다음 구조의 JSON 객체입니다:

    {
      "msg": "[DECRYPTED_MESSAGE_CONTENT]", // 복호화된 메시지 텍스트
      "room": "[CHAT_ROOM_NAME]",          // 채팅방 이름 또는 1:1 채팅의 경우 발신자 이름
      "sender": "[SENDER_NAME]",          // 메시지 발신자 이름
      "json": {                            // 'chat_logs' 테이블의 원시 데이터베이스 행을 JSON으로 표현
        "_id": "...",
        "chat_id": "...",
        "user_id": "...",
        "message": "[DECRYPTED_MESSAGE_CONTENT]", // 복호화된 메시지 내용, "msg" 필드와 동일
        "attachment": "[DECRYPTED_ATTACHMENT_INFO]", // 복호화된 첨부 파일 정보 (있는 경우)
        "v": "{\"enc\": 0, ...}",           // 원본 'v' 열 값 (JSON 형식)
        // ... chat_logs 테이블의 기타 열 ...
      }
    }