简介
顾名思义,是一个tg转发消息的小工具,在写自动化的时候,需要监听tg群组里的osmedeus漏洞推送同步转发到钉钉上,需要就造了这么一个轮子(基于Golang)
能力有限,代码写得很垃圾,各位师傅们轻喷,也欢迎各位师傅指导与讨论
主要功能
- 监听tg群组里的所有消息并且转发到钉钉上
使用说明
依赖库:
- github.com/blinkbean/dingtalk
- github.com/go-telegram-bot-api/telegram-bot-api
注册一个专门监听群组消息的tg机器人并且记录下access token
1
2
3
|
@BotFather
osm_bot
xxx_osm_bot
|
创建TG频道后拉监听机器人进去后,需要修改脚本四处位置:
1
2
3
4
|
var dingToken = "钉钉机器人Webhook TOKEN"
var dingSecret = "钉钉机器人加签Secret"
bot, err := tgbotapi.NewBotAPI("tg机器人telegram_api_token")
if update.ChannelPost.Chat.UserName == "需要监听的群组名称
|
编译运行
1
2
3
|
go mod init
go mod tidy
go build
|
运行截图
后台挂载监听
使用osmedeus测试推送转发
项目地址:https://github.com/Shm1ly726/tg-message-forwarding
完整代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package main
import (
"github.com/blinkbean/dingtalk"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
"log"
)
var msg string
type DingTalkMessage struct {
MsgType string `json:"msgtype"`
Text map[string]interface{} `json:"text"`
}
func dingTalkBot(tg_massage string) {
var dingToken = "钉钉机器人Webhook TOKEN"
var dingSecret = "钉钉机器人加签Secret"
cli := dingtalk.InitDingTalkWithSecret(dingToken, dingSecret)
cli.SendTextMessage(tg_massage)
}
func tg_Bot() {
bot, err := tgbotapi.NewBotAPI("tg机器人telegram_api_token")
if err != nil {
log.Panic(err)
}
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates, err := bot.GetUpdatesChan(u)
for update := range updates {
if update.ChannelPost == nil {
continue
}
if update.ChannelPost.Chat.UserName == "需要监听的群组名称" {
msg = update.ChannelPost.Text
dingTalkBot(msg)
}
}
}
func main() {
tg_Bot()
}
|