我正在使用 Tauri 构建桌面应用程序,我需要从 AWS Lambda 函数向他们发送纯数据推送通知。我之前使用 FCM 并从我的 Electron 应用程序中使用push-receiver Node 库 进行监听,该库煞费苦心地对 GCM 消息协议进行了逆向工程。但我没有看到 Rust 有任何类似的东西。据我所知,WNS 仅适用于 Microsoft Store 中的应用程序,我不打算要求我的用户经历这一过程。
这个问题解决了吗?到目前为止,我能看到的唯一前进路线是尝试将推送接收器移植到 Rust。
我创建了 fcm-push-listener 箱来执行此操作。我使用推送接收器库作为使用每个协议调用哪些端点的参考。
use fcm_push_listener::FcmPushListener;
let registration = fcm_push_listener::register("1001234567890").await?;
// Send registration.fcm_token to the server to allow it to send push messages to you.
let mut listener = FcmPushListener::create(
registration,
|message: FcmMessage| {
println!("Message JSON: {}", message.payload_json);
println!("Persistent ID: {:?}", message.persistent_id);
},
vec!["0:1677356129944104%7031b2e6f9fd7ecd".to_owned()]);
listener.connect().await?;
(编辑)这将于 2024 年 6 月 20 日停止工作,因为它所依赖的 API 正在被删除。
Amazon SNS 有一个 Rust 客户端,但我读过建议,每个用户不应该有一个主题,而这正是需要的。而且身份验证会很奇怪; SNS 似乎假设它以 IAM 身份在云中运行。