54 lines
1.8 KiB
Go
54 lines
1.8 KiB
Go
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)
|
||
}
|
||
}
|