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 } }