이전 글
[코딩/Go언어] - 텔레그램 봇 Go언어(Golang) API (1)
예시
package main
import (
"log"
"github.com/go-telegram-bot-api/telegram-bot-api"
)
var numericKeyboard = tgbotapi.NewReplyKeyboard(
tgbotapi.NewKeyboardButtonRow(
tgbotapi.NewKeyboardButton("1"),
tgbotapi.NewKeyboardButton("2"),
tgbotapi.NewKeyboardButton("3"),
),
tgbotapi.NewKeyboardButtonRow(
tgbotapi.NewKeyboardButton("4"),
tgbotapi.NewKeyboardButton("5"),
tgbotapi.NewKeyboardButton("6"),
),
)
func main() {
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
if err != nil {
log.Panic(err)
}
bot.Debug = true
log.Printf("Authorized on account %s", bot.Self.UserName)
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates, err := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message == nil {
continue
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
switch update.Message.Text {
case "open":
msg.ReplyMarkup = numericKeyboard
case "close":
msg.ReplyMarkup = tgbotapi.NewRemoveKeyboard(true)
}
bot.Send(msg)
}
}
키보드 임베딩
응답 키보드
사용법
var numericKeyboard = tgbotapi.NewReplyKeyboard(
tgbotapi.NewKeyboardButtonRow(
tgbotapi.NewKeyboardButton("1"),
tgbotapi.NewKeyboardButton("2"),
tgbotapi.NewKeyboardButton("3"),
),
tgbotapi.NewKeyboardButtonRow(
tgbotapi.NewKeyboardButton("4"),
tgbotapi.NewKeyboardButton("5"),
tgbotapi.NewKeyboardButton("6"),
),
)
- NewKeyboardMarkup(InlilneKeyboardRow()) : 새로운 키보드를 가로로 한 줄씩 선언한다.
- NewKeyboardRow(InlineKeyboardButton()) : 키보드의 한 줄을 선언하고, 그 줄의 데이터는 아래 인수로 선언한 것들로 채운다.
- NewKeyboardButton(Text) : Text 값을 반환하는 버튼을 하나 생성한다.
- NewKeyboardButtonContact(Text) : Text 값을 친구이름으로 반환하는 버튼을 하나 생성한다.
- NewKeyboardButtonLocation(Text) : Text값을 위치로 반환하는 버튼을 하나 생성한다.
- NewKeyboardRow(InlineKeyboardButton()) : 키보드의 한 줄을 선언하고, 그 줄의 데이터는 아래 인수로 선언한 것들로 채운다.
인라인 키보드
인라인 키보드란?
인라인 키보드는 채팅할 때 봇의 메시지 내부에 키보드 버튼이 담겨있는 것이다.
사용법
var numericKeyboard = tgbotapi.NewInlineKeyboardMarkup(
tgbotapi.NewInlineKeyboardRow(
tgbotapi.NewInlineKeyboardButtonURL("1.com","http://1.com"),
tgbotapi.NewInlineKeyboardButtonSwitch("2sw","open 2"),
tgbotapi.NewInlineKeyboardButtonData("3","3"),
),
tgbotapi.NewInlineKeyboardRow(
tgbotapi.NewInlineKeyboardButtonData("4","4"),
tgbotapi.NewInlineKeyboardButtonData("5","5"),
tgbotapi.NewInlineKeyboardButtonData("6","6"),
),
)
- NewInlineKeyboardMarkup(InlilneKeyboardRow()) : 새로운 인라인 키보드를 가로로 한 줄씩 선언한다.
- NewInlineKeyboardRow(InlineKeyboardButton*()) : 인라인키보드의 한 줄을 선언하고, 그 줄의 데이터는 아래 인수로 선언한 것들로 채운다.
- NewInlineKeyboardButtonURL(Name, URL) : Name이란 이름으로 URL로 이동하는 버튼을 하나 생성한다.
- NewInlineKeyboardButtonSwitch(Name, Switch) : Name이란 이름으로 main함수에서 switch 구문의 case를 실행한다.
- NewInlineKeyboardButtonData(Name, Data) : Data값을 전송받은 것으로 처리한다.
- NewInlineKeyboardRow(InlineKeyboardButton*()) : 인라인키보드의 한 줄을 선언하고, 그 줄의 데이터는 아래 인수로 선언한 것들로 채운다.
'코딩 > Go언어' 카테고리의 다른 글
텔레그램 봇 Go언어(Golang) API (1) (0) | 2020.05.09 |
---|