Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

Violet's Devblog

메신저봇 가이드 - API(레거시) 본문

Android/메신저봇

메신저봇 가이드 - API(레거시)

DEViolet 2019. 7. 28. 00:51

연관 문서

레거시 API

본 문서에서 설명하는 API는 앞으로 지원이 중단될 구형 API입니다. (신형 API는 아직 준비중)

본 문서는 자주 쓰이는 API순으로 정렬되었습니다.

replier

/* room이라는 채팅방에 msg라는 내용을 전송합니다.
 * 메신저봇의 작동방식상 메신저봇이 구동된 이후에 알림을 단 한번도
 * 받지 못한 채팅방으로는 답장이 불가능한데, 이를 시도할 경우
 * 화면 하단에 Toast알림을 표시하게 됩니다.
 * hideToast값으로 true를 주면 이를 숨길 수 있습니다.
 * 반환값은 메신저봇이 해당 방의 답장 세션을 가지고 있는지에 대한 여부입니다. 
 * 이는 일반적으로 메시지 전송요청의 성공 여부를 나타냅니다.
 * (단, 통신 문제등으로 전송이 실패하는 경우는 고려하지 않습니다.) */
Boolean reply(String room, String msg, Boolean hideToast = false)

/* replier객체가 현재 저장하고 있는 방에 msg이라는 내용을 전송합니다. */
void reply(String msg)

imageDB

// 아래 두 함수는 같은 함수이며, 프로필 이미지를 Base64의 형태로 반환합니다.
String getProfileBase64()
String getProfileImage()

// 프로필 이미지를 Bitmap으로 반환합니다.
android.graphics.Bitmap getProfileBitmap()

/* 아래 함수는 아직 구현되지 않아 항상 null을 반환합니다. 
 * JellBreak님의 봇앱에서 작성한 스크립트와의 호환성을 조금이나마 높이고자 선언만 해두었습니다. */
null getImage()

Api

// 앱의 컨텍스트를 가져옵니다
android.content.Context getContext()

// 모든 스크립트를 재컴파일합니다. 반환값은 항상 true입니다.
Boolean reload() 또는 Boolean compile()

/* 특정 스크립트를 재컴파일합니다.
 * throwOnError가 true라면, 컴파일 에러시 예외를 throw합니다.
 * 에러 발생시, 또는 스크립트가 존재하지 않을 시 false를 반환하고, 컴파일 성공시 true를 반환합니다. */
Boolean reload(String scriptName, Boolean throwOnError = false) 또는 Boolean compile(String scriptName, Boolean throwOnError = false)

/* 해당 스크립트가 한번도 컴파일 된 적이 없을 경우에만 컴파일합니다. 
 * 컴파일 실패시 에러를 throw하고, 스크립트가 존재하지 않을 시 0, 
 * 컴파일 성공시 1, 한번이라도 컴파일 된 적이 있을 시 2를 반환합니다. */
int prepare(String scriptName)

/* 해당 스크립트를 컴파일되지 않은 상태로 전환합니다. 
 * 원래부터 컴파일되지 않은 상태였거나, 스크립트가 존재하지 않을 시 false를 반환하며,
 * 그렇지 않은 경우에는 true를 반환합니다. */
Boolean unload(String scriptName)

// 모든 스크립트의 전원을 끕니다. 반환값은 항상 true입니다.
Boolean off()

/* 해당 스크립트의 전원을 끕니다.
 * 스크립트가 존재하지 않거나, 스크립트의 설정에서 Api.off를 무시하도록 설정했을 경우 false를 반환하고, 
 * 그렇지 않은 경우에는 true를 반환합니다. */
Boolean off(String scriptName)

// 모든 스크립트의 전원을 켭니다. 반환값은 항상 true입니다.
Boolean on()

// 해당 스크립트의 전원을 켭니다. 스크립트가 존재하지 않을 시 false, 존재할 시 true를 반환합니다.
Boolean on(String scriptName)

// 해당 스크립트의 전원 상태를 반환합니다.
Boolean isOn(String scriptName)

// 해당 스크립트의 컴파일완료 여부를 반환합니다.
Boolean isCompiled(String scriptName)

// 해당 스크립트가 컴파일 진행중인지 여부를 반환합니다.
Boolean isCompiling(String scriptName)

// 모든 스크립트의 이름을 배열로 반환합니다.
String[] getScriptNames()

/* 해당 방에 메시지를 보냅니다. hideToast가 true일 경우 방 세션이 없어도 토스트를 띄우지 않습니다.
 * 방 세션이 있을 시 true, 없을 시 false를 반환합니다. (이는 일반적인 상황에서 전송 성공 여부를 나타냅니다.) */
Boolean replyRoom(String room, String message, Boolean hideToast = false)

// 해당 채팅방으로의 메시지 전송 가능 여부를 반환합니다.
Boolean canReply(String room)

// 토스트 메시지를 띄웁니다.
void showToast(String content, Int length)

/* 알림을 띄웁니다. id값은 알림의 고유 아이디로, 
 * 같은 아이디로 makeNoti를 다시 한번 호출하면 알림이 새로 뜨지 않고 내용이 수정됩니다. */
Boolean makeNoti(String title, String content, int id)

/* 번역 결과를 제공합니다. 
 * sourceLanguage와 targetLanguage의 언어 코드에 관해서는 파파고의 Api문서를 참고하세요.
 * errorToString이 true일 경우 에러를 throw하지 않고 String으로 반환합니다. */
String papagoTranslate(String sourceLanguage, String targetLanguage, String content, Boolean errorToString = false)

// 가비지 컬렉팅을 강제로 시작합니다.
void gc()

/* UI 쓰레드에서 func함수를 실행합니다.
 * onComplete함수는 error, result의 인자를 가지며, func실행 후 에러 발생시 error에 에러객체가 전달되고,
 * 성공적으로 실행됐을 시 반환값을 result에 전달합니다. */
void UIThread(Function func, Function onComplete)

Utils

// 웹사이트의 HTML을 로드하여 문자열로 반환합니다. (동기적)
String getWebText(String url)

// 웹사이트의 HTML을 get하여 org.jsoup.nodes.Document로 반환합니다. (동기적)
org.jsoup.nodes parse(String url)

// 앱 구동 환경의 안드로이드 버전 코드를 반환합니다.
int getAndroidVersionCode()

// 앱 구동 환경의 안드로이드 버전 이름을 반환합니다.
String getAndroidVersionName()

// 앱 구동 환경의 휴대폰 브랜드명을 반환합니다.
String getPhoneBrand()

// 앱 구동 환경의 휴대폰 모델명을 반환합니다.
String getPhoneModel()

FileStream

// path경로(파일 이름까지 포함)에 있는 파일 내용을 읽어 반환합니다.
String read(String path)

// path경로(파일 이름까지 포함)에 data를 덮어씁니다. 반환값은 최종 파일 내용입니다.
String write(String path, String data)

// path경로(파일 이름까지 포함)에 data를 이어씁니다. 반환값은 최종 파일 내용입니다.
String append(String path, String data)

/* path경로(파일 이름까지 포함)을 삭제합니다.
 * 반환값은 java.io.File.delete()의 결과값, 또는 삭제중 예외가 발생할 경우 false를 반환합니다. */
Boolean remove(String path)

DataBase

/* 앱_데이터_폴더/Database 폴더 내에 fileName이라는 파일을 만들고, data 문자열을 덮어씁니다.
 * fileName에 확장자가 명시되지 않은 경우 확장자는 자동으로 .txt가 됩니다.
 * 최종 파일 내용을 반환합니다. */
String setDataBase(String fileName, String data)

// 앱_데이터_폴더/Database/fileName 파일을 읽어 내용을 문자열로 반환합니다.
String getDataBase(String fileName)

// 앱_데이터_폴더/Database/fileName파일에 data를 이어씁니다. 최종 파일 내용을 반환합니다.
String appendDataBase(String fileName, String data)

/* 앱_데이터_폴더/Database/fileName 파일을 삭제합니다.
 * 앱 옵션에서 삭제시 백업기능을 켜두었을 경우, fileName.bak으로 내용이 백업됩니다.
 * java.io.File.delete()의 결과를 반환합니다. */
Boolean removeDataBase(String fileName)

Log

// 디버그 로그를 씁니다.
void d(String data, Boolean showToast = false) 또는 void debug(String data, Boolean showToast = false)

// 에러 로그를 씁니다.
void e(String data, Boolean showToast = false) 또는 void error(String data, Boolean showToast = false)

// 정보 로그를 씁니다.
void i(String data, Boolean showToast = false) 또는 void info(String data, Boolean showToast = false)

// 로그를 모두 지웁니다.
void clear()

Device

// android.os.Build()값을 반환합니다.
android.os.Build getBuild()

// 앱 구동 환경의 안드로이드 버전 코드를 반환합니다.
int getAndroidVersionCode()

// 앱 구동 환경의 안드로이드 버전 이름을 반환합니다.
String getAndroidVersionName()

// 앱 구동 환경의 휴대폰 브랜드명을 반환합니다.
String getPhoneBrand()

// 앱 구동 환경의 휴대폰 모델명을 반환합니다.
String getPhoneModel()

// 앱 구동 환경 휴대폰이 충전중 여부를 반환합니다.
Boolean isCharging()

// 충전기의 타입을 반환합니다. (ac/wireless/usb/unknown)
String getPlugType()

// 배터리 잔량(%)를 반환합니다.
int getBatteryLevel()

int getBatteryHealth() : 배터리 건강 상태에 대한 상수를 반환합니다. 반환하는 상수는 다음과 같습니다: 
android.os.BatteryManager.BATTERY_HEALTH_COLD
android.os.BatteryManager.BATTERY_HEALTH_DEAD
android.os.BatteryManager.BATTERY_HEALTH_GOOD
android.os.BatteryManager.BATTERY_HEALTH_OVERHEAT
android.os.BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE
android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN
android.os.BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE

// 현재 배터리 온도*10을 반환합니다.
int getBatteryTemperature()

// 현재 배터리 전압(mV)을 반환합니다.
int getBatteryVoltage()

int getBatteryStatus() : 배터리 상태에 대한 상수를 반환합니다. 반환하는 상수는 다음과 같습니다:
android.os.BatteryManager.BATTERY_STATUS_CHARGING
android.os.BatteryManager.BATTERY_STATUS_DISCHARGING
android.os.BatteryManager.BATTERY_STATUS_FULL
android.os.BatteryManager.BATTERY_STATUS_NOT_CHARGING
android.os.BatteryManager.BATTERY_STATUS_UNKNOWN

// context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) 값을 반환합니다.
android.content.Intent getBatteryIntent()

Bridge

/* scriptName스크립트의 global 스코프를 반환합니다.
 * 만약 대상 스크립트가 컴파일 또는 인터프리트되지 않았거나,
 * 설정에서 Bridge를 통한 접근을 허용하지 않은 경우 null을 반환합니다. */
org.mozilla.javascript.ScriptableObject getScopeOf(String scriptName)

// scriptName스크립트의 Bridge를 통한 접근 허용 여부를 반환합니다.
Boolean isAllowed(String scriptName)

AppData

// 앱 데이터에 boolean값을 씁니다.
void putBoolean(String key, Boolean boolean)

// 앱 데이터에서 boolean값을 불러옵니다.
Boolean getBoolean(String key)

// 앱 데이터에 정수값을 씁니다.
void putInt(String key, int integer)

// 앱 데이터에서 정수값을 불러옵니다.
int getInt(String key)

// 앱 데이터에 문자열값을 씁니다.
void putString(String key, String string)

// 앱 데이터에서 문자열값을 불러옵니다.
String getString(String key)

// AppData를 통해 저장한 앱 데이터 중 키값에 해당하는 앱 데이터를 지웁니다.
void remove(String key)

// AppData를 통해 저장한 모든 앱 데이터를 지웁니다.
void clear()
Comments