通过telegram机器人自动发送群消息
1、添加
①Telegram 添加 BotFather 进入聊天界面
②点击输入框中 /start
③回复内容中点击 /newbot
④阅读提示分别输入 name 和 username,比如叫test_bot
⑤返回token
2、启用
在Telegram搜索@test_bot,进入聊天界面,在聊天窗口输入/start,代表启用该机器人
二、查找群ID
将机器人test_bot添加进群
输入hello @test_bot
同时通过在浏览器输入 https://api.telegram.org/bot123456:ABC-DEF1234DEF1234DEF1234/getUpdates 查找群ID 【黑色加粗要替换成机器人的真实token】
三、发送群消息
查看文档:https://core.telegram.org/bots/api#sendmessage
type telegramMessage struct {
ChatID int64 `json:"chat_id"`
Text string `json:"text"`
ParseMode string `json:"parse_mode"`
DisableWebPagePreview bool `json:"disable_web_page_preview"`
}
func SendMessageToTelegramGroup(token string, chatID int64, message string) error {
apiURL := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage", token)
telegramMessage := telegramMessage{
ChatID: chatID,
Text: message,
ParseMode: "HTML",
DisableWebPagePreview: true,
}
messageData, err := json.Marshal(telegramMessage)
if err != nil {
return err
}
resp, err := http.Post(apiURL, "application/json", bytes.NewBuffer(messageData))
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
if err != nil {
return err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("failed to send message. Status code: %d", resp.StatusCode)
}
return nil
}
四、踩过的坑
1、添加机器人进群时:
我设置的机器人名字是**work_bot,但不知道为什么用@一直搜不到,多次尝试后,在一个别的bot下搜到了,不确定是不是我操作创建机器人时出了问题;
2、一定要记得写ensure_ascii=False
最初没有写的时候,结果不是中文,我用转码工具尝试了应该是Unicode转中文,一直尝试怎么改代码实现Unicode转中文。后来发现问题出在json.dumps(datas, ensure_ascii=False)这里;
3、tg消息换行,用\n,已验证没有问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」