go-telegram-bot-api inline Keyboard 的代码示范

8 min read

下面是一个简单的示例代码,演示如何使用 go-telegram-bot-api 创建一个 inline keyboard 并将其发送给 Telegram 用户:

package main

import (
    "log"

    tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
)

func main() {
    // 创建一个新机器人
    bot, err := tgbotapi.NewBotAPI("YOUR_BOT_TOKEN")
    if err != nil {
        log.Fatal(err)
    }

    // 设置机器人的 API 请求频率限制(可选)
    bot.RequestRate = tgbotapi.NewLimitedConf(1000, 5*time.Minute)

    // 创建一个 inline keyboard 回复选项
    replyMarkup := tgbotapi.NewInlineKeyboardMarkup(
        tgbotapi.NewInlineKeyboardRow(
            tgbotapi.NewInlineKeyboardButtonData("Option 1", "1"),
            tgbotapi.NewInlineKeyboardButtonData("Option 2", "2"),
        ),
        tgbotapi.NewInlineKeyboardRow(
            tgbotapi.NewInlineKeyboardButtonData("Option 3", "3"),
            tgbotapi.NewInlineKeyboardButtonData("Option 4", "4"),
        ),
    )

    // 发送回复消息并附带 inline keyboard
    msg := tgbotapi.NewMessage(chatID, "请选择一个选项:")
    msg.ReplyMarkup = replyMarkup

    if _, err := bot.Send(msg); err != nil {
        log.Fatal(err)
    }
}

在上面的代码示例中,我们首先通过 NewInlineKeyboardMarkup 创建了一个新的 inline keyboard,然后将其分为两行分别包含四个按钮。然后,我们将 inline keyboard 附加到一个新的消息中,并使用 bot.Send 方法将其发送给机器人的聊天窗口。

当用户点击 inline keyboard 上的任何选项时,机器人会返回一个包含用户选择的数据字符串的回调查询。可以使用回调查询来执行与所选选项相关的操作或显示其他与选项相关的信息。请参考 go-telegram-bot-api 文档以获取更多有关如何处理回调查询的信息。