package feishu import ( "context" "encoding/json" "fmt" "github.com/google/uuid" lark "github.com/larksuite/oapi-sdk-go/v3" larkcore "github.com/larksuite/oapi-sdk-go/v3/core" larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1" ) type Client struct { larkClient *lark.Client } func NewClient(larkClient *lark.Client) *Client { return &Client{larkClient: larkClient} } func (c *Client) SendMessageToChat(ctx context.Context, message, chatID string) error { content := &MessageContent{ Text: message, } contentJson, err := json.Marshal(content) if err != nil { return err } contentString := string(contentJson) req := larkim.NewCreateMessageReqBuilder(). ReceiveIdType("chat_id"). Body(larkim.NewCreateMessageReqBodyBuilder(). ReceiveId(chatID). MsgType(`text`). Content(contentString). Uuid(uuid.New().String()). Build()). Build() resp, err := c.larkClient.Im.V1.Message.Create(ctx, req) if err != nil { return err } if !resp.Success() { fmt.Printf("logId: %s, error response: \n%s", resp.RequestId(), larkcore.Prettify(resp.CodeError)) return nil } return nil }