Violet's Devblog
메신저봇 가이드 - API(레거시) 본문
연관 문서
레거시 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()
'Android > 메신저봇' 카테고리의 다른 글
메신저봇R v0.3.1a 패치노트 (0) | 2019.10.06 |
---|---|
메신저봇R v0.3.0a 패치노트 (0) | 2019.10.06 |
메신저봇 가이드 - 이벤트 리스너(레거시) (13) | 2019.08.10 |
메신저봇 가이드 - 소개 (12) | 2019.07.28 |
MessengerBotR Privacy Policy (0) | 2019.07.21 |
Comments