使用Golang通过Telegram-bot-api向用户发送消息遇到问题,求帮助

使用Golang通过Telegram-bot-api向用户发送消息遇到问题,求帮助 嗨,我的朋友们

我使用这个库 github.com/go-telegram-bot-api/telegram-bot-api

我有代码 https://play.golang.org/p/uXLRvZMIHyM

如何向添加了机器人的用户发送消息? 我该如何发送简单的消息? 不是用户向机器人输入了什么,而是我主动发送文本给他?

请告诉我该怎么做


更多关于使用Golang通过Telegram-bot-api向用户发送消息遇到问题,求帮助的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于使用Golang通过Telegram-bot-api向用户发送消息遇到问题,求帮助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


要使用 go-telegram-bot-api 库主动向用户发送消息,你需要使用 NewMessage 函数并指定目标用户的聊天 ID。以下是一个完整的示例代码,展示如何初始化机器人并发送消息:

package main

import (
    "log"

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

func main() {
    // 用你的实际机器人令牌替换这里
    bot, err := tgbotapi.NewBotAPI("YOUR_BOT_TOKEN")
    if err != nil {
        log.Panic(err)
    }

    // 设置要发送消息的目标聊天 ID(用户或群组)
    chatID := int64(123456789) // 替换为实际用户的聊天 ID

    // 创建消息配置
    msg := tgbotapi.NewMessage(chatID, "这是一条主动发送的消息!")
    
    // 发送消息
    _, err = bot.Send(msg)
    if err != nil {
        log.Panic(err)
    }
}

关键点说明:

  1. YOUR_BOT_TOKEN 需要替换为从 BotFather 获取的实际机器人令牌
  2. chatID 需要替换为目标用户的实际聊天 ID
  3. 使用 NewMessage(chatID, text) 创建消息配置
  4. 调用 bot.Send(msg) 发送消息

获取用户聊天 ID 的方法:

  • 可以让用户先向机器人发送一条消息,然后从更新中提取 Chat.ID
  • 或者通过其他方式预先获取并存储用户的聊天 ID

示例获取聊天 ID 的代码:

// 在处理更新时获取发送者的聊天 ID
func handleUpdate(update tgbotapi.Update) {
    if update.Message != nil {
        chatID := update.Message.Chat.ID
        log.Printf("用户聊天 ID: %d", chatID)
    }
}

注意:确保你的机器人没有被用户屏蔽,并且拥有向该用户发送消息的权限。

回到顶部