| 摘要 | 通过您自己的应用程序将 Discourse 推送通知发送到 iOS 或 Android | |
| 代码库链接 | GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app | |
| 安装指南 | 如何在 Discourse 中安装插件 |
功能
如果您有一个可供用户浏览 Discourse 论坛的应用程序,此插件将允许您的论坛通过该应用程序发送推送通知。(如果您还没有应用程序但可能想要一个,请查看这个极简解决方案。)
方便用户: 当用户收到有关私人消息的推送通知时,点击该通知将打开您的应用程序并直接显示该私人消息。这比使用Discourse Pushover Notifications 具有重大优势,因为后者会将推送通知打开到 Pushover 应用程序,并且不清楚如何找到消息。另一方面,如果您想要无需应用程序的推送通知,Pushover Notifications 是个不错的选择。
通用: 使用 Google Firebase 作为消息层,因此所有 iOS 和 Android 设备都可以接收这些推送通知,只要该国家/地区没有禁止 Google。
配置
- 安装并激活插件。
- 为您的应用程序创建一个免费的 Google Firebase 项目。将 Firebase 项目 ID、令牌和 json(包含 OAuth 数据)添加到 Discourse 中的插件设置。
- 调整您的应用程序代码:
-
通过将设备令牌发送到 YOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=… 来订阅活动用户接收推送通知。请务必在设备令牌更改时每次都调用此函数。
-
通过调用 YOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=REMOVE 来取消订阅活动用户。
-
推送通知将具有以下形式:
'data': { "linked_obj_type" => 'link', "linked_obj_data" => <指向消息中引用的帖子/消息的 URL>, }, 'notification': { title: <“用户名在主题中给您发了私人消息”之类的标题>, body: <消息的开头>, }
因此,您需要使用标题/正文显示推送通知,并且点击它应该会在应用内浏览器中打开 linked_obj_data 中的 URL。这就是您需要在应用程序代码中定义的。
示例实现
您可以在此处获取一个适用于此插件的极简但功能齐全的应用程序的代码。(这是我们创建的生产应用程序的白标版本,该应用程序需要此插件。)如果您只想要一个显示您的论坛、发送推送通知并记住用户登录/上次阅读主题的应用程序,您只需更改品牌并将其提交到应用商店即可完成。否则,它可以作为基础。
此应用程序的收入将用于资助插件的维护和进一步开发。
