mirror of
https://github.com/nikoksr/notify.git
synced 2025-01-10 00:28:36 +02:00
100 lines
2.7 KiB
Markdown
100 lines
2.7 KiB
Markdown
|
# 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")
|
||
|
}
|
||
|
```
|
||
|
|