# Lark ## Prerequisites Depending on your requirements, you'll need either a custom app or a Lark group chat webhook. The latter is easier to set up, but can only send messages to the group it is in. You may refer to the doc [here](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMuhttps://open.larksuite.com/document/home/develop-a-bot-in-5-minutes/create-an-appkTM/bot-v3/use-custom-bots-in-a-group) to set up a webhook bot, and the doc [here](https://open.larksuite.com/document/home/develop-a-bot-in-5-minutes/create-an-app) to set up a custom app. ## Usage ### Webhook For webhook bots, we only need the webhook URL, which might look something like `https://open.feishu.cn/open-apis/bot/v2/hook/xxx`. Note that there is no method to configure receivers, because the webhook bot can only send messages to the group in which it was created. ```go package main import ( "context" "log" "github.com/nikoksr/notify" "github.com/nikoksr/notify/service/lark" ) // Replace this with your own webhook URL. const webHookURL = "https://open.feishu.cn/open-apis/bot/v2/hook/xxx" func main() { larkWebhookSvc := lark.NewWebhookService(webHookURL) notifier := notify.New() notifier.UseServices(larkWebhookSvc) if err := notifier.Send(context.Background(), "subject", "message"); err != nil { log.Fatalf("notifier.Send() failed: %s", err.Error()) } log.Println("notification sent") } ``` ### Custom App For custom apps, we need to pass in the App ID and App Secret when creating a new notification service. When adding receivers, the type of the receiver ID must be specified, as shown in the example below. You may refer to the section entitled "Query parameters" in the doc [here](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create) for more information about the different ID types. ```go package main import ( "context" "log" "github.com/nikoksr/notify" "github.com/nikoksr/notify/service/lark" ) // Replace these with the credentials from your custom app. const ( appId = "xxx" appSecret = "xxx" ) func main() { larkCustomAppService := lark.NewCustomAppService(appId, appSecret) // Lark implements five types of receiver IDs. You'll need to specify the // type using the respective helper functions when adding them as receivers. larkCustomAppService.AddReceivers( lark.OpenID("xxx"), lark.UserID("xxx"), lark.UnionID("xxx"), lark.Email("xyz@example.com"), lark.ChatID("xxx"), ) notifier := notify.New() notifier.UseServices(larkCustomAppService) if err := notifier.Send(context.Background(), "subject", "message"); err != nil { log.Fatalf("notifier.Send() failed: %s", err.Error()) } log.Println("notification sent") } ```