庆祝 Novu 粉丝突破 2 万!
并非每天都能看到 GitHub 代码库获得超过 2 万颗星。因此,我非常自豪地宣布,截至撰写本文时,我们的代码库已经获得了20.2 万颗星!
我们衷心感谢开发者社区对 Novu 的大力支持,他们给予了 Novu 诸多喜爱、反馈、PR、星标和改进。正因如此,Novu 才成为全球开发者久经考验、值得信赖的多渠道通知服务!
Novu 是一个开源的通知基础设施,专为工程团队构建,旨在帮助他们构建丰富的产品通知体验,而无需不断重复造轮子。
无需赘言,我再次重申,我们将致力于确保您在测试和将 Novu 集成到您的 Web 应用程序时拥有绝佳的开发体验。
探索我们的演示。
我们创建了一些示例应用程序,展示了如何使用 Novu 设置应用内通知和电子邮件通知。

https://notification-center-demo.vercel.app

https://novu-notifications-vue3.vercel.app

https://angular-novu.vercel.app
更快地与 Novu SDK 集成
我们努力确保开发者能够使用他们选择的语言,通过流畅且富有表现力的界面与 Novu 的 API 进行交互。
Novu 提供以下语言的原生 SDK:Go、Node.js、PHP、Ruby、Kotlin和Python。
import (
"context"
"fmt"
novu "github.com/novuhq/go-novu/lib"
"log"
)
subscriberID := "<UNIQUE_SUBSCRIBER_IDENTIFIER>"
apiKey := "<NOVU_API_KEY>"
eventId := "<NOTIFICATION_TEMPLATE_TRIGGER_ID>"
ctx := context.Background()
to := map[string]interface{}{
"lastName": "Doe",
"firstName": "John",
"subscriberId": subscriberID,
"email": "john@doemail.com",
}
payload := map[string]interface{}{
"name": "Hello World",
"organization": map[string]interface{}{
"logo": "https://happycorp.com/logo.png",
},
}
data := novu.ITriggerPayloadOptions{To: to, Payload: payload}
novuClient := novu.NewAPIClient(apiKey, &novu.Config{})
resp, err := novuClient.EventApi.Trigger(ctx, eventId, data)
if err != nil {
log.Fatal("novu error", err.Error())
return
}
fmt.Println(resp)
Go SDK:向订阅者触发通知
import { Novu } from '@novu/node';
const novu = new Novu(process.env.NOVU_API_KEY);
await novu.trigger('<NOTIFICATION_TEMPLATE_TRIGGER_ID>',
{
to: {
subscriberId: '<UNIQUE_SUBSCRIBER_IDENTIFIER>',
email: 'john@doemail.com',
firstName: 'John',
lastName: 'Doe',
},
payload: {
name: "Hello World",
organization: {
logo: 'https://happycorp.com/logo.png',
},
},
}
);
Node SDK:向订阅者触发通知
use Novu\SDK\Novu;
$novu = new Novu(<NOVU_API_KEY>);
$novu->triggerEvent([
'name' => '<NOTIFICATION_TEMPLATE_TRIGGER_ID>',
'payload' => [
'name' => 'Hello World',
'organization' => [
'logo': 'https://happycorp.com/logo.png',
],
],
'to' => [
'subscriberId' => '<UNIQUE_SUBSCRIBER_IDENTIFIER>',
'phone' => '07983882186',
'email' => 'john@doemail.com',
'firstName' => 'John',
'lastName' => 'Doe',
]
]);
PHP SDK:向订阅者触发通知
require 'novu';
client = Novu::Client.new('NOVU_API_KEY')
body = {
name: "<NOTIFICATION_TEMPLATE_TRIGGER_ID>",
payload: {
name: "Hello World",
organization: {
logo: "https://happycorp.com/logo.png",
},
},
to: {
firstName: "John",
lastName: "Doe",
email: "john@doemail.com",
phone: "07983882199",
},
}.to_json
client.trigger_event(body)
Ruby SDK:向订阅者触发通知
import co.novu.Novu
import co.novu.extensions.subscribers
import co.novu.dto.request.TriggerEventRequest
import co.novu.dto.request.SubscriberRequest
fun main() {
val novu = Novu(apiKey = "NOVU_API_KEY")
novu.trigger(TriggerEventRequest.Companion.invoke
(
name = "<NOTIFICATION_TEMPLATE_TRIGGER_ID>",
to = SubscriberRequest(
subscriberId = "harry_potter"
firstName = "Harry",
lastName = "Potter",
phone = "97X98XX98X1",
email = "email@email.com",
loacal = "locale",
avatar = "avatar",
),
payload = mapOf("name" to "Hello World")
)
)
}
Kotlin SDK:向订阅者触发通知
注意: Java 应用程序可以使用它。
from novu.API import EventApi
event_api = EventApi("https://api.novu.co/api/", "<NOVU_API_KEY>")
event_api.trigger(
name="<NOTIFICATION_TEMPLATE_TRIGGER_ID>",
recipients="<YOUR_SUBSCRIBER_ID>",
payload={
'name': 'Hello World',
'organization': {
'logo': 'https://happycorp.com/logo.png'
}
},
)
Python SDK:向订阅者触发通知
Novu 通知中心 - UI 组件
Novu 提供了一系列 UI 组件,可用于创建丰富且可定制的通知中心体验。此外,您还可以使用我们现成的 UI。
它具有部分可更换皮肤的功能,也就是说,您可以在一定程度上自定义用户界面。
Novu 通知中心 - 无头模式
你是否曾经引入第三方 UI 组件后发现,为了使 UI 与你的应用程序设计保持一致,需要对 UI 进行大量调整?有时,这会令人沮丧。
我们理解这一点,并决定发布一个新的无头库,以进一步普及通知功能。
此版本为用户提供接近裸机、轻量级、无需渲染的软件,用于将通知功能集成到 Web 应用中。您可以将其用于任何框架,也可以通过利用提供的 API 方法将其集成到纯 JavaScript 应用中。
您可以根据自己的应用需求,将其封装成任何您认为合适的 UI 或设计!
结论
有句谚语说:“不要计算日子,要让每一天都过得有意义!”这仅仅是我们构建世界一流通知基础设施的第一天,该基础设施既强大又易于集成。
我们为开发者准备了很多东西,并将尽可能频繁地发布更新。
立即开始使用 Novu管理您的通知,并在评论区或GitHub上告诉我们您的使用体验。
顺便一提,我们的0.14 版本正在开发中。敬请期待后续更新!
文章来源:https://dev.to/novu/celebating-novu-20k-stars-14dk

