Golang的telegram-bot-api/v5库响应Telegram内联查询遇空指针panic
解决Telegram Bot内联查询空指针panic问题
你代码的核心错误是混淆了内联查询(InlineQuery)和回调查询(CallbackQuery)的处理逻辑——当收到内联查询时,update.CallbackQuery字段是nil,直接访问它的ID、Data等字段自然会触发空指针异常。
以下是处理内联查询的完整可行示例:
package main import ( "fmt" "log" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" ) func main() { // 替换为你的bot token botToken := "YOUR_BOT_TOKEN" bot, err := tgbotapi.NewBotAPI(botToken) if err != nil { log.Panic(err) } bot.Debug = true // 开启调试模式,方便查看请求日志 log.Printf("Authorized on account %s", bot.Self.UserName) updateConfig := tgbotapi.NewUpdate(0) updateConfig.Timeout = 60 updates := bot.GetUpdatesChan(updateConfig) for update := range updates { // 处理内联查询 if update.InlineQuery != nil { query := update.InlineQuery.Query log.Printf("收到内联查询:%s", query) // 创建内联查询响应配置 inlineConfig := tgbotapi.NewInlineConfig(update.InlineQuery.ID) // 添加内联查询结果,这里示例添加两个文本结果 // 结果1:直接返回查询内容 result1 := tgbotapi.NewInlineQueryResultArticle("1", "你查询的内容", query) result1.Description = "返回你输入的查询文本" inlineConfig.Results = append(inlineConfig.Results, result1) // 结果2:固定文本示例 result2 := tgbotapi.NewInlineQueryResultArticle("2", "固定回复", "这是一个内联查询的固定回复示例") result2.Description = "展示固定内容的内联结果" inlineConfig.Results = append(inlineConfig.Results, result2) // 发送内联查询响应 if _, err := bot.Request(inlineConfig); err != nil { log.Println("发送内联响应失败:", err) } } // 如果你需要同时处理回调查询,可以单独加这个分支 if update.CallbackQuery != nil { // 处理回调按钮的逻辑 callback := tgbotapi.NewCallback(update.CallbackQuery.ID, update.CallbackQuery.Data) if _, err := bot.Request(callback); err != nil { log.Println("发送回调响应失败:", err) } // 给用户发送回调数据提示 msg := tgbotapi.NewMessage(update.CallbackQuery.Message.Chat.ID, "你触发了回调:"+update.CallbackQuery.Data) if _, err := bot.Send(msg); err != nil { log.Println("发送消息失败:", err) } } } }
关键说明:
- 内联查询的核心是返回InlineQueryResult集合给用户,而非处理CallbackQuery
- 必须先在BotFather中给你的bot开启内联模式(发送
/setinline,按提示完成配置) - 每个内联结果需要唯一ID(示例中用"1"、"2",实际可用UUID等更唯一的值)
- 除文本结果外,还可返回图片、视频、文档等类型的内联结果,参考库的
NewInlineQueryResult*系列函数
内容的提问来源于stack exchange,提问作者ar rr
相关产品推荐
相关产品推荐

