2023년 10월 3일 화요일

텔레그램 봇 (Telegram Bot) 만들기

텔레그램 봇 만들기

1:1 채팅용 봇 만들기

1. 검색창 botfather를 검색한 후 선택합니다.

검색창에 botfather검색


2. /help를 채팅창에 입력하면 봇에 관련된 명령어 매뉴얼을 볼 수 있습니다.

help 명령어로 메뉴얼 출력


3. /newbot을 입력하고, 봇 이름을 입력합니다. 봇 이름에는 마지막에 _bot을 붙여 줘야 합니다.
예) 봇이름_bot
봇이름을 정상적으로 입력하면 봇 주소와 봇 토큰을 알 수 있습니다.

newbot 생성


4. 봇이 잘만들어졌는지 확인하려면 브라우져에서 아래 값을 넣고 결과를 확인해 봅니다.

# 브라우져 URL 창에 아래와 같이 입력합니다.
# https://api.telegram.org/bot[할당받은토큰값]/getUpdates
https://api.telegram.org/bot1234586790:abcdefghijklmnopqrstuvwxyz/getUpdates

# 결과
{
    "ok": true,
    "result": []
}


5. 텔레그램 검색창에서 내가 만든 봇의 이름을 검색하면 검색이 된다. 클릭하고 메시지를 입력하여 대화를 시작합니다.


8. https://api.telegram.org/bot[할당받은 토큰값]/getUpdates를 한 번 더 요청하면 봇의 chat id (12345678)를 얻을 수 있습니다. 

# 브라우져 URL 창에 아래와 같이 입력합니다.
# https://api.telegram.org/bot[할당받은토큰값]/getUpdates
https://api.telegram.org/bot1234586790:abcdefghijklmnopqrstuvwxyz/getUpdates

# 결과
{
    "ok": true,
    "result": [
        {
            "update_id": 12345,
            "message": {
                "message_id": 1,
                "from": {
                    "id": 12345678,
                    "is_bot": false,
                    "first_name": "xxx",
                    "last_name": "xxx",
                    "username": "xxx",
                    "language_code": "ko"
                },
                "chat": {
                    "id": 12345678,
                    "first_name": "xxx",
                    "last_name": "xxx",
                    "username": "xxx",
                    "type": "private"
                },
                "date": 1696305248,
                "text": "개인1:1메시지입니다."
            }
        }
    ]
}

9. chat id (12345678)를 얻었으니 봇에게 메시지를 보내봅니다.

# 브라우져 URL창에 아래와 같이 입력합니다.
# https://api.telegram.org/bot[할당받은토큰값]/sendmessage?chat_id=[chat id]&text=[메시지]
https://api.telegram.org/bot1234586790:abcdefghijklmnopqrstuvwxyz/sendmessage?chat_id=12345678&text=개인1:1메시지입니다.


채널 만들기

봇을 만들고 1:1채팅으로 메시지를 보내 보았는데 나혼자 쓰는 봇이 아닌 여러사람들과 같이 쓸 때는 채널을 만들어서 사용해야 합니다.


1. 채널 만들기

채널생성


2. 오른쪽 상단 메뉴 > 채널 관리

채널관리정보


3. 위에서 만든 봇을 관리자와 구독자에 초대합니다.

채널_관리자_구독자_봇추가.


4. 채널의 chat id를 얻기 위해서 텔레그램 메시지창에서 아무 메시지나 보내봅니다.

 

6. 채널의 chat id를  확인하려면 다시 브라우져에서 아래 값을 넣고 결과를 확인해 봅니다. 채널의 id (-12345678987654)를 얻을 수 있습니다. 채널 id는 -(마이너스)로 시작합니다.

# 브라우져 URL 창에 아래와 같이 입력합니다.
# https://api.telegram.org/bot[할당받은토큰값]/getUpdates
https://api.telegram.org/bot1234586790:abcdefghijklmnopqrstuvwxyz/getUpdates

# 결과
{
    "ok": true,
    "result": [
        {
            "update_id": 12345,
            "message": {
                "message_id": 1,
                "from": {
                    "id": 12345678,
                    "is_bot": false,
                    "first_name": "xxx",
                    "last_name": "xxx",
                    "username": "xxx",
                    "language_code": "ko"
                },
                "chat": {
                    "id": 12345678,
                    "first_name": "xxx",
                    "last_name": "xxx",
                    "username": "xxx",
                    "type": "private"
                },
                "date": 1696305248,
                "text": "개인1:1메시지입니다."
            }
        },
        {
            "update_id": 123456,
            "channel_post": {
                "message_id": 2,
                "sender_chat": {
                    "id": -12345678987654,
                    "title": "채널 타이틀",
                    "username": "채널 이름",
                    "type": "channel"
                },
                "chat": {
                    "id": -12345678987654,
                    "title": "채널 타이틀",
                    "username": "채널 이름",
                    "type": "channel"
                },
                "date": 1696305285,
                "text": "채널메시지입니다."
            }
        }
    ]
}

7. 채널의 id (-12345678987654)를 얻었으니 봇에게 메시지를 보내봅니다.

# 브라우져 URL 창에 아래와 같이 입력합니다.
# https://api.telegram.org/bot[할당받은 토큰값]/sendmessage?chat_id=[chat id]&text=[메시지]
https://api.telegram.org/bot1234586790:abcdefghijklmnopqrstuvwxyz/sendmessage?chat_id=-12345678987654&text=채널메시지입니다.


봇이름 변경

봇이름을 변경하고 싶을때 /setname을 입력하고 봇 이름을 변경합니다.

봇이름변경