Go 中使用 Firebase 云消息传递的 Web 推送通知

Go 中使用 Firebase 云消息传递的 Web 推送通知

关于网络推送通知,最近因为下雨不能出门而沉迷其中 @_tetsuya28 我将简要总结一下。

这次,我将介绍一个从 Go 发送 Web 推送通知的示例,如下所示。

什么是 Firebase 云消息传递

通过使用 Firebase 的 Cloud Messaging,您可以发送网络推送通知,Instagram 和 YouTube 也使用这些通知。
https://firebase.google.com/docs/cloud-messaging

流程直到发送推送通知

在客户端发出令牌→将令牌存储在服务器端→从服务器端向 Firebase 发出消息

使用 React 注册客户端

火力基地 v9 ( @firebase/消息 @0.9.16 ) 用于 Firebase 云消息传递令牌的客户端发行。

在客户端,使用下面的代码为每个客户端生成一个 Firebase 云消息传递令牌。

 从“firebase/messaging”导入 { getMessaging, getToken } const app = initializeApp(firebaseConfig)  
 常量消息 = getMessaging(app)  
 const fcm_token = 等待 getToken(消息,{  
 vapidKey: "****",  
 })  
 控制台日志(fcm_token)

然后使用来自客户端的某种方法(例如 API)将令牌保存在服务器端。此处保存的令牌必须在适当的时候更新。
https://firebase.google.com/docs/cloud-messaging/manage-tokens

本文假设上述令牌存储在服务器端。

使用 Go 发送通知

这是一次向多个设备(用户)发送通知的示例。
https://firebase.google.com/docs/cloud-messaging/send-message

  1. 初始化火力基地

    # 进口 (

    火力基地“firebase.google.com/go”

    ) 应用程序,错误:= firebase.NewApp(context.TODO(), &firebase.Config{})

    如果错误!= nil {
    日志打印(错误)
    }

2. 初始化云消息

 客户端,错误:= app.Messaging(context.TODO())  
 如果错误!= nil {  
 日志打印(错误)  
 }

3. 创建消息

WebpushFcmOptions.Link https 通过设置 的链接,可以设置点击推送通知时的链接跳转。

代币 对于 ,将每个客户端生成的 Firebase 云消息传递令牌设置为字符串数组。

 消息 := &messaging.MulticastMessage{  
 代币:代币,  
 通知:通知,  
 网络推送:&messaging.WebpushConfig{  
 FcmOptions: &messaging.WebpushFcmOptions{  
 链接:“https://example.com”,  
 },  
 },  
 }

4. 发送消息

 br, err := client.SendMulticast(context.TODO(), message)  
 如果错误!= nil {  
 日志打印(错误)  
 }

其他

如果您对本文有任何问题或意见 @_tetsuya28 请随时通过 DM 与我们联系。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38142/27342011

posted @ 2022-09-20 11:28  哈哈哈来了啊啊啊  阅读(227)  评论(0编辑  收藏  举报