모바일/Tasker

Tasker를 활용한 퇴근할 때 자동으로 텔레그램으로 위치발송 및 초심자를 위한 Tasker에 대한 이해

허리띠를졸라매자 2022. 10. 14. 14:27
반응형

들어가며...

 

 

저는 이부망천에서 서울로 출근을 하는 불쌍한 가장이기에 출퇴근 시간이 좀 걸립니다.

출근을 할 때 출근 여부를 묻거나, 퇴근을 할 때는 어디쯤 도착했는지 집에서 묻는 경우가 있습니다.

운전 중 휴대전화 조작이 위험하기도 하고 하여 퇴근 중에 자동으로 현재 위치를 텔레그램으로 보내고 있습니다.

 

메인폰은 문자가 무제한이라 문자로 보냈는데... 현재는 메인폰이 아이폰이고 A15는 탈옥도 안 되기 때문에 어쩔 수 없이 차량에서 데이터 셔틀용으로 사용하는 서브폰으로 메시지를 보냅니다.

이 서브폰의 요금제가 문자 기본 제공이 월 100개뿐이라, 아이폰으로 기변한 이후에는 SMS 요금을 아끼기 위해 텔레그램으로 메시지를 보내고 있었습니다.

 

서브폰을 기본에 사용하던 xz1c에서 일본 도코모판 갤럭시 A22로 바꾸면서 Tasker의 설정을 제대로 백업하지 못하여 기존에 사용하던 프로필이 증발하기도 하였고, 기존보다 더 간단한 방법이 있기도 한데,  Tasker 입문자에게 도움이 될까 하여 글을 게시합니다.

 

https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en&gl=US 

 

Tasker - Apps on Google Play

Automate everything from settings to photos, SMS to speech. ADC2 prize winner.

play.google.com

태스커는 가히 안드로이드 앱의 최고봉이라 생각하는 유료 자동화 어플입니다.

 

 

https://medium.com/geekculture/tasker-and-telegram-integration-278c53ab1d00

 

Tasker and Telegram Integration

Today, I’ll explain how to send messages on Telegram using Tasker. I’ll show, in particular, the methods to send text messages and your…

medium.com

기존과는 다른 더 간단한 방법을 도움받은 원문은 여기에 있습니다.

 

https://play.google.com/store/apps/details?id=com.freehaha.restask&hl=ko&gl=US 

 

RESTask for Tasker - Google Play 앱

다른 인터페이스를 제공 테스 커 플러그인의 RESTful API에 액세스 할 수 있습니다.

play.google.com

기존에 사용하던 방식은 위의 RESTask를 이용하는 것이었는데, 이 게시물에서는 사용하지 않습니다.

 

 

 

텔레그램 봇 생성

 

 

SMS 요금을 아끼기 위해 텔레그램으로 메시지를 발송할 것인데, 봇을 생성하는 과정이 필요합니다.

텔레그램을 설치한 후 봇을 생성하기 위해 이 바로가기를 방문합니다. 

https://t.me/botfather

 

 

봇파더라는 봇이 열리면 '/newbot'을 입력하여 봇을 생성하는 작업을 시작합니다.

이후 봇의 이름을 지정해줍니다.

마지막으로 해당 봇에 접근할 주소를 정해주어야 하는데, 이 부분에서는 꼭 주소의 끝이 '_bot'의 형식으로 끝나야 합니다.

 

위 작업이 완료되면 위 사진처럼 새로운 나만의 봇이 생성되고, 해당 봇에 접근할 수 있는 바로가기 주소와, 토큰이 안내됩니다.

 

이후 텔레 그램에서 새로 만든 봇에 입장하여 아무 말이나 한마디 해줍니다.

영어로 해주는 것이 좋습니다.

 

 

다음으로 웹브라우저에서 아래의 형식으로 주소를 입력합니다.

https://api.telegram.org/bot[토큰]/getupdates

[토큰] 부분에는 위의 봇을 생성하고 받은 토큰을 입력하면 됩니다.

 

 

그러면 웹브라우저창에서 제가 보낸 메시지 내용과 id를 확인할 수 있습니다.

이제 텔레그램으로 메시지를 보낼 수 있는 사전 작업은 완료되었습니다.

 

 

 

Tasker를 활용한 자동화의 기본적인 이해

 

 

Tasker를 실행한 후 우 하단의 더하기 버튼을 누르면 새로운 프로필을 생성할 수 있습니다.

자동으로 작업을 실행할 조건을 먼저 지정해주어야 하는데, Application은 특정 앱이 실행될 때, Day, Time은 날짜나 시간의 조건이고, 이번 글에서 활용할 조건 중 하나인 Location은 특정 위치를 실행 조건으로 삼게 됩니다.

 

Event와 State라는 두 가지 항목이 더 있는데, 번역해서 생각하는 그대로의 차이가 있습니다.

Event는 일시적인 변화이고, State는 지속 중인 상태를 조건으로 합니다.

 

그래서 같은 블루투스로 검색해보면 Event에서는 블루투스가 연결이 될 때가 검색되고, State에서는 주변에 해당 블루투스 기기가 있을 때등이 검색됩니다.

위의 사진에서 BT Connected와 BT Connection의 차이는... 블루투스가 특정 기기와 연결되어 있는 상태와 연결되는 순간이라 이해하면 편합니다.

 

 

프로필의 실행 조건에서 길게 누르고 있으면 위와 같은 팝업이 뜨는데, 조건을 추가해줄 수 있습니다.

단일 프로필에서 여러 개의 조건이 있는 경우 모든 조건이 충족되어야만 동작하는 & 조건입니다.

 

 

이번에 사용하는 예제에서는 주중+퇴근시간대+회사 근처에서+차량의 네비와 서브폰이 연결되어 있을 때 동작하게 설정을 한 것인데, 문제는 회사에서 시동을 걸고 해당 위치의 반경에서 정체가 발생한다면 여러 개의 문자가 반복적으로 발송될 것이라는 점입니다.

 

이런 경우 프로필을 길게 누르면 우상단에 톱니바퀴 아이콘이 생성되는데, 해당 아이콘으로 진입하여 추가적인 설정을 해줄 수 있습니다.

 

위의 사진 같은 경우에는 한번 실행 후 두 시간 이내에는 재실행 금지 조건을 걸어둔 것인데, 왼쪽 사진처럼 제가 퇴근시간의 범위를 1시간 반으로 한정해두었기 때문에 해당 시간대에서는 1회만 실행이 가능하게 됩니다.

 

Launched Task Priority 부분을 짚고 넘어가자면, 여러 개의 프로필을 사용하는 경우 프로필간에 반대되거나 중첩되어 서로 간섭을 일으키는 상황도 발생할 수 있습니다.

 

이런 경우 작업 우선순위를 조정하여 프로필의 중첩되는 경우 어느 것이 실행되게 할지를 정할 수 있습니다.

 

 

 

Tasker를 이용한 자동 텔레그램 메시지 발송

 

 

텔레그램 자동 발송은 이제 마무리 단계입니다.

Tasker 메인화면에서 '+' 버튼을 눌러 작업을 실행할 조건을 지정해주면 첫 번째 사진처럼 이름을 입력하라고 나옵니다.

이름을 입력하고 나면 가운데 사진처럼 우상단에 나오는 'New Task' 항목을 선택하면 다시 제목을 입력하라 하는데, 굳이 지정해주지 않아도 됩니다.

 

 

'Task Edit' 창이 열리면 우하단의 '+' 버튼을 눌러 열리는 액션 목록에서 'HTTP Request'로 찾아들어갑니다.

 

 

https://api.telegram.org/bot[토큰]/sendMessage

'HTTP Request' 창이 열리면 위와 같이 'URL'에 'https://api.telegram.org/bot[토큰]/sendMessege'를 입력합니다.

[토큰] 부분은 위에서 봇을 생성하면서 받은 토큰을 입력하면 됩니다.

 

'Query Parameters' 항목에는

text:[보낼내용]

chat_id:[위에서 확인한 봇에 입장한 개인식별 아이디]

를 입력해줍니다.

 

이제 설정한 조건이 충족되면 위에서 만든 나만의 봇이 위의 사용자에게 텔레그램으로 내가 원하는 문자열을 보내줍니다.

'%LOCME'부분은 다음장에서 설명하겠습니다.

 

 

 

메시지 발송에 위치 바로가기를 추가하는 방법

 

 

최종적으로 저는 왼쪽의 사진처럼 설정하였습니다.

1번에 'Get Location v2'라는 액션은 현재 위치를 가져옵니다.

가운데 사진처럼 'Get Location v2' 액션으로 들어가 보면 사용할 수 있는 변수들이 나옵니다.

위 변수들 중 위도와 경도를 이용하여 구글지도의 바로가기를 만들었습니다.

 

이렇게 위치를 가져오게 하고, 2번의 'Variable Set'을 이용하면 가져온 위치를 새로운 변수로 할당할 수 있습니다.

태스커의 모든 변수는 '%'문자열로 시작합니다.

 

 

바로 위에서 만든 저 변수를 발송할 메시지에 할당해주었습니다.

 

기본적으로 지역변수는 소문자이며, 전역 변수는 대문자입니다.

전역 변수라 함은 해당 프로필 외에서도 사용할 수 있게 해주는 변수입니다.

 

이제 제가 퇴근하면서 퇴근길의 특정 지역을 지나가게 되면 오른쪽 사진처럼 제 위치를 바로 확인할 수 있는 구글 지도의 바로가기가 텔레그램을 통하여 전달됩니다.

 

 

위와 같은 바로가기로 지도를 열면 핀이 보이는데, 위의 핀이 보이게 바로가기를 설정하는 방법은 아래의 글을 참고하였습니다.

 

https://www.kpaper.com/2017/08/url.html

 

구글지도로 위도 경도 URL 로 던지기

Unity3D 개발자, 인디게임 제작, 스마트 기기 개봉 및 사용기, 취미 공유 관련 블로그 입니다.

www.kpaper.com

 

 

 

SMS로 발송하는 방법

 

 

메인폰이 안드로이드일때는 SMS 한도가 무제한이라 SMS로 발송을 했었습니다.

위의 과정들을 그대로 작업하시면서 발송부분만, 'Send SMS'로 액션을 설정해주면 됩니다.

 

'Number'에 수신할 번호, 'Message'에 발송할 내용을 입력하면 됩니다.

728x90
반응형