package server import ( "backend/common" "backend/middleware/feishu/client" "backend/middleware/feishu/data" "backend/middleware/feishu/handle" "context" "fmt" "log" larkcore "github.com/larksuite/oapi-sdk-go/v3/core" "github.com/larksuite/oapi-sdk-go/v3/event/dispatcher" "github.com/larksuite/oapi-sdk-go/v3/event/dispatcher/callback" larkapplication "github.com/larksuite/oapi-sdk-go/v3/service/application/v6" larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1" larkws "github.com/larksuite/oapi-sdk-go/v3/ws" ) func Server() { if common.GetNMap() { fmt.Printf("Start Feishu server fail\n") return } // 注册事件回调,OnP2MessageReceiveV1 为接收消息 v2.0;OnCustomizedEvent 内的 message 为接收消息 v1.0。 eventHandler := dispatcher.NewEventDispatcher("", ""). OnP2MessageReceiveV1(func(ctx context.Context, event *larkim.P2MessageReceiveV1) error { log.Printf("[ OnP2MessageReceiveV1 access ], data: %s\n", larkcore.Prettify(event)) chat_id := *event.Event.Message.ChatId client.C.SendGroupMsg(chat_id, "text", "hello") return nil }) eventHandler.OnP2BotMenuV6(func(ctx context.Context, event *larkapplication.P2BotMenuV6) error { log.Printf("[ OnP2BotMenuV6 access ], data: %s\n", larkcore.Prettify(event)) return nil }) eventHandler.OnP2CardActionTrigger(func(ctx context.Context, event *callback.CardActionTriggerEvent) (*callback.CardActionTriggerResponse, error) { log.Printf("[ OnP2CardActionTrigger access ], data: %s\n", larkcore.Prettify(event)) return handle.Handle(ctx, event) }) // 创建Client cli := larkws.NewClient(data.APP_ID, data.APP_SECRET, larkws.WithEventHandler(eventHandler), larkws.WithLogLevel(larkcore.LogLevelInfo), ) fmt.Printf("Start Feishu server success\n") // 启动客户端 err := cli.Start(context.Background()) if err != nil { panic(err) } }