Telegram Bot inline keyboard 구현

2022. 1. 7. 13:28IT/nodejs

반응형

nodejs 로 텔레그램 inline keyboard를 구현하는 방법

 

inline keyboard란?

왼쪽과 같이, 텔레그램 명령어를 입력하면, 설명과 함께 메뉴가 나타나는 것을 의미한다.

 

정확하게 이야기 하면, 텔레그램에서는 해당 버튼을 '키보드'라고 표현한다.

왜냐하면, 기존에는 채팅 메시지 입력 창(키보드)를 누르면 해당 키보드에 입력 자판 대신 메뉴가 뜨도록 구현이 되어 있어서, 단순히 '키보드'라고 표현하고 있는 것 같다.

 

근데 점차 UI의 혁신(?)으로 키보드 또한, 채팅창으로 이동하여 마치 메뉴 처럼 나타낼 수 있게 되었다. 이것을 'inline keyboard'라고 표현하는 것이다.

 

자세한 내용은 공식 사이트를 참고하시라.

https://core.telegram.org/bots/2-0-intro#new-inline-keyboards

 

Introducing Bot API 2.0

Howdy! This text assumes that you‘re familiar with Telegram’s bot platform. If this is not the case, kindly check out our…

core.telegram.org

 

먼저, nodejs 패키지를 임포트한다.

const TelegramBot = require('node-telegram-bot-api');

Bot API 문서를 보면, inline_keyboard의 Type은 InlineKeyboardButton의 2차원 배열이므로(Array of Array) 해당 부분을

유의해야 한다.

 

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

이제 /start 커맨드 입력시 inline keyboard를 보여주는 코드이다.

bot.onText(/\/start/, (msg) => {
    bot.sendMessage(CHAT_ID, "Welcome", {
        "reply_markup": {
            "inline_keyboard":
                [
                    [
                        { text: 'AAA', callback_data: 'AAA' }
                    ],
                    [
                        { text: 'BBB', callback_data: 'BBB' }
                    ]
                ]
        }
    });
});

 

이렇게 입력하면, 아래와 같이 나오면 성공!

 

이제 해당 버튼을 누를 경우, 2차 inline keyboard가 호출되고 연동되고 하는 각종 응용을 연습해봐야할 차례다.

연습 후 본 블로그에 포스팅하도록 하겠다.

반응형

'IT > nodejs' 카테고리의 다른 글

nodejs mysql사용시, SQL Injection 방어하기  (0) 2022.01.19
nodejs mysql사용시, SQL Injection 방어하기  (0) 2022.01.19