GitHub - chyroc/lark: Feishu(飞书)/Lark Open API Go SDK, Support ALL Open API and Event Callback. (original) (raw)

lark

codecov go report card test status Apache-2.0 license Go.Dev reference Mentioned in Awesome Go Go project version Used by

中文版 README

Feishu/Lark Open API Go Sdk, Support ALL Open API and Event Callback.

Supported Features

Chat

⁣Click Lark Chat Link to discuss.

Install

go get github.com/chyroc/lark

Docs

https://godoc.org/github.com/chyroc/lark

Support APIs

API Count: 1098, Event Count: 152

Click This to See ALL

Usage

Example: create lark client

cli := lark.New(lark.WithAppCredential("", ""))

cli := lark.New( lark.WithAppCredential("", ""), lark.WithOpenBaseURL("https://open.larksuite.com"), lark.WithWWWBaseURL("https://www.larksuite.com"), )

cli := lark.New( lark.WithAppCredential("", ""), lark.WithEventCallbackVerify("", ""), )

cli := lark.New( lark.WithAppCredential("", ""), lark.WithHelpdeskCredential("", "HELPDESK_TOKEN"), )

Example: handle event callback

for more about event callback example, see ./_examples/event_callback.go .

handle message callback example:

cli := lark.New( lark.WithAppCredential("", ""), lark.WithEventCallbackVerify("", ""), )

// handle message callback cli.EventCallback.HandlerEventIMMessageReceiveV1(func(ctx context.Context, cli *lark.Lark, schema string, header *lark.EventV2Header, event *lark.EventV2IMMessageReceiveV1) (string, error) { _, _, err := cli.Message.Reply(event.Message.MessageID).SendText(ctx, "hi, "+event.Message.Content) return "", err })

http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) { cli.EventCallback.ListenCallback(r.Context(), r.Body, w) })

fmt.Println("start server ...") log.Fatal(http.ListenAndServe(":9726", nil))

Example: ISV APP

for more about isv example, see ./_examples/isv.go .

create isv chat:

cli := lark.New( lark.WithAppCredential("", ""), lark.WithISV(true), lark.WithStore(""), )

tenantKey1Cli := cli.WithTenant("") resp, _, err := tenantKey1cli.Chat.CreateChat(ctx, &lark.CreateChatReq{ Name: ptrString(""), }) fmt.Println(resp, err)

Example: get bot info

for more about bot example, see ./_examples/bot.go .

get bot info example:

cli := lark.New(lark.WithAppCredential("", ""))

resp, _, err := cli.Bot.GetBotInfo(ctx, &lark.GetBotInfoReq{}) fmt.Println(resp, err)

Example: send message

for more about send message example, see ./_examples/send_message.go .

send text message example:

cli := lark.New(lark.WithAppCredential("", ""))

resp, _, err := cli.Message.Send().ToChatID("").SendText(ctx, "") fmt.Println(resp, err)

Example: other message

for more about other message example, see ./_examples/other_message.go .

send delete message example:

cli := lark.New(lark.WithAppCredential("", ""))

resp, _, err := cli.Message.DeleteMessage(ctx, &lark.DeleteMessageReq{ MessageID: "", }) fmt.Println(resp, err)

Example: chat

for more about chat example, see ./_examples/chat.go .

create chat example:

cli := lark.New(lark.WithAppCredential("", ""))

resp, _, err := cli.Chat.CreateChat(ctx, &lark.CreateChatReq{ Name: ptrString(""), }) fmt.Println(resp, err)

Example: file

for more about file example, see ./_examples/file.go .

upload image example:

cli := lark.New(lark.WithAppCredential("", ""))

f, err := os.Open("") if err != nil { panic(err) } resp, _, err := cli.File.UploadImage(ctx, &lark.UploadImageReq{ ImageType: lark.ImageTypeMessage, Image: f, }) fmt.Println(resp, err)

Example: calendar

for more about calendar example, see ./_examples/calendar.go .

create calendar example:

cli := lark.New(lark.WithAppCredential("", ""))

resp, _, err := cli.Calendar.CreateCalendar(ctx, &lark.CreateCalendarReq{ Summary: ptrString("

"), }) fmt.Println(resp, err)