이번에 기회가 되서 텔레그램을 이용한 알림 전송 기능을 제작하게 되었다.

나중에 잊기전에 미리 정리할려고 한다

 

1. 텔레그램 봇을 사용하기 위해서는 봇을 먼저 생성해야한다.

   1.1 텔레그램 데스크탑에 접속하여 BotFather을 채팅방에서 검색한 후 찾는다.

   1.2 /start를 하면 bot의 이름을 입력하라고 나오고 봇의 이름은 ***_bot 또는 ***Bot 으로 끝나야한다.

   1.3 Bot이 생성되면 

   이러한 형태로 메세지를 받을 수 있다.

   1번 위치의 주소는 봇의 개인 채팅방 주소이고, 2번 위치의 주소는 봇의 http api 주소이다.

 

2. 봇을 생성 후 자신이 메세지를 보낼 채팅방의 id를 확인해야한다.

   2.1 id를 확인하는 방법은 api.telegram.org/bot[api]/getUpdates  를 주소창에 처음 입력하고, error가 뜨지않는다면, 봇이

        접속되어있는 방에 아무 메세지를 입력하고 다시 api.telegram.org/bot[봇api]/getUpdates 주소로 들어간다.

    2.2 다시 접속한다면 chat id에 대한 정보를 확인할 수 있다.

          - 1:1 대화 채팅방 : 1:1 대화채팅방에서는 from 뒤에 있는 id가 chat_id이다.

          - 그룹 채팅방: 그룹채팅방에서는 id에 - 가 붙은 id가 chat_id이다.

 

3. chat_id를 알아냈다면 이제 메세지를 송신하면 된다.

                       api.telegram.org/bot[ api]/sendmessage?chat_id=[chat id]&text=텍스트

다음과 같이 작성하여 송신 하면 봇이 있는 채팅방에 메세지를 송신할 수 있다.

 

텍스트가 이상한 형태로 송신되는 경우가 있다. 이런 경우에는 주소 인코딩을 이용하여 송신시키면 해결된다.

- javascript/typescript 경우로 encodeURL함수에 주소를 담아 송신한다.

 

 

**********************************************************************************************************************

node 환경에서 전송 시에는 다른 방법으로 송신할 수 있다.

 

다음과 같은 방법으로 node에서 제공하는 텔레그램 봇 api를 호출하고

const bot = new TelegramBot(봇 api 주소);
bot.sendMessage(봇 chat_id, 메세지 내용, 옵션);

방식으로 내용을 송신할 수 있다. 옵션에는 html 모드나 일반모드로 텍스트 또는 html 형태로도 송신 가능하다.