Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2)
이전 글 보기
이전 글에 이어서, 이번에는 Telegram Bot을 생성하고, Pipeline을 새로 작성하여 최종적으로 빌드된 apk가 Telegram Bot이 쏴줄 수 있도록 목표를 잡는다.
Telegram Bot 생성
일단 Telegram에서 BotFather를 추가한다. Telegram의 Bot 생성 과정이 아주 잘 되어있기에 어렵지 않게 할 수 있으리라 예상한다. @BotFather 를 찾아 추가한다. 그 다음 /newbot 명령어를 통해 Bot을 생성하면 된다.
Bot의 Token을 이용해서 Request 날립시다
봇 생성을 완료하면 위 사진 처럼 API에 접근 가능한 Token을 발급해준다. 이 Token을 통해 우리는 Pipeline에서 Telegram을 통해 바로 APK를 보낼 수 있다.
변수 설정
이전 편에서 BB_AUTH_STRING값을 추가한 과정과 같이, TELEGRAM_TOKEN 이라는 변수를 추가해줄 것이다. 물론 Secured 옵션을 켜야한다. 어떠한 것이든 Token이 외부로 노출되는 것을 최소화 하는 버릇을 들이는 것이 좋다.
이제 변수 추가도 했으니 pipeline yml을 수정해보자.
Pipeline YML 수정
일단 기존에는 다 만들어진 apk 파일을 Repo 의 Downloads 에 업로드 하는 것 까지였다. 하지만 우린 Telegram Bot으로 쏴줘야 하기 때문에, curl request 코드를 딱 한 줄만 더 추가할 것이다.
https://core.telegram.org/bots/api#senddocument
Telegram Bot API
The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create…
core.telegram.org
요청은 위의 API문서를 활용하였다.
일단 Telegram Bot이 채팅방으로 apk를 뿌리기 위해 채팅방의 ID인 chat_id가 필요하다. 이는 사용자가 /start 명령어로 봇을 실행하고, /getUpdates 요청으로 가져올 수 있는데, 아래와 같다.
https://api.telegram.org/bot{telegram_bot_token}/getUpdates
저 안에 telegram_bot_token은 아까 발급해준 토큰을 넣으면 된다. 그 후 브라우저에서 접속하면?
짜잔-! 이제 이 Chat id 까지 기록한 후에
YML에서 아래 소스 한 줄을 추가한다.
curl -F document=@"app/build/outputs/apk/debug/app-debug.apk" "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument?chat_id=<your_chat_id>"
맨 뒤에 보면 your_chat_id는 Bot 이 APK를 뿌릴 채팅방의 ID이다.
이제 Pipeline을 수정 완료 하고 실행을 시켜보면,,
본인 같은 경우는 caption 파라메터를 추가하여 버전명과 같이 보이도록 수정했다. 아무튼 잘 오는구만,,!
Bot 커스텀 하기
Telegram은 꽤 넓은 범위 안에서 API를 제공하고 있다. 따라서, 커스텀 할 수 있는 부분이 많으니, 추가 사항은 아래 API 문서 링크를 첨부할태니 확인해 보면 좋을 것이다.
https://core.telegram.org/bots/api
Telegram Bot API
The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create…
core.telegram.org
'Android' 카테고리의 다른 글
'onMessageReceived' overrides nothing 해결 (1) | 2020.03.30 |
---|---|
Biometric을 이용한 지문 인식 사용 (2) | 2020.03.20 |
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1) (0) | 2020.02.10 |
DataBinding 오류 해결 (0) | 2020.02.01 |
[MAC] ADB PATH 설정하기 (0) | 2020.01.30 |
댓글
이 글 공유하기
다른 글
-
'onMessageReceived' overrides nothing 해결
'onMessageReceived' overrides nothing 해결
2020.03.30 -
Biometric을 이용한 지문 인식 사용
Biometric을 이용한 지문 인식 사용
2020.03.20 -
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)
2020.02.10 -
DataBinding 오류 해결
DataBinding 오류 해결
2020.02.01