Files
bl/login/internal/cmd/robot.go
2025-10-27 03:04:16 +00:00

60 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package cmd
import (
"context"
"fmt"
"log"
"net/http"
"time"
"github.com/tencent-connect/botgo"
"github.com/tencent-connect/botgo/dto"
"github.com/tencent-connect/botgo/event"
"github.com/tencent-connect/botgo/interaction/webhook"
"github.com/tencent-connect/botgo/token"
)
const (
host_ = "0.0.0.0"
port_ = 9000
path_ = "/qqbot"
)
func robot() {
credentials := &token.QQBotCredentials{
AppID: "102815288",
AppSecret: "faVQLHD951xurolifcaYWUSQPONMLKKK",
}
log.Println("credentials:", credentials)
tokenSource := token.NewQQBotTokenSource(credentials)
ctx, cancel := context.WithCancel(context.Background())
defer cancel() //释放刷新协程
if err := token.StartRefreshAccessToken(ctx, tokenSource); err != nil {
log.Fatalln(err)
}
// 初始化 openapi正式环境
botgo.NewOpenAPI(credentials.AppID, tokenSource).WithTimeout(5 * time.Second).SetDebug(true)
// 注册处理函数
_ = event.RegisterHandlers(
GuildDirectMessageHandler(),
)
http.HandleFunc(path_, func(writer http.ResponseWriter, request *http.Request) {
webhook.HTTPHandler(writer, request, credentials)
})
if err := http.ListenAndServe(fmt.Sprintf("%s:%d", host_, port_), nil); err != nil {
log.Fatal("setup server fatal:", err)
}
}
// GuildDirectMessageHandler 处理频道私信事件
func GuildDirectMessageHandler() event.DirectMessageEventHandler {
return func(event *dto.WSPayload, data *dto.WSDirectMessageData) error {
fmt.Println(data)
return nil
}
}