Discourse 亚马逊 SNS 通知

:information_source: 摘要 通过 Amazon SNS 向自定义移动应用程序发送推送通知。
:hammer_and_wrench: 代码库链接 GitHub - discourse/discourse-amazon-sns
:open_book: 安装指南 如何在 Discourse 中安装插件

discourse-amazon-sns 插件通过 Amazon Simple Notification Service (SNS) 在 Discourse 论坛中启用推送通知。它旨在与移动应用程序配合使用,通过 APNS 和 GCM/FCM 向 iOS 和 Android 设备发送推送通知。Amazon SNS 负责与每个协议的通信,此插件可确保 Discourse 事件(回复、关注的主题、私人消息等)触发 SNS 中的事件。

功能

  • 支持 iOS (APNS) 和 Android (GCM/FCM) 平台的推送通知
  • 设备令牌注册和管理
  • 自动处理已禁用或无效的端点
  • 与 Discourse 现有的通知系统集成
  • 支持 React Native webview 通信

要求

  • 具有 SNS 访问权限的 AWS 账户
  • 已配置的 Amazon SNS 平台应用程序,用于:
    • iOS (APNS 或 APNS_SANDBOX)
    • Android (GCM/FCM)
  • 具有发布到 SNS 权限的 AWS 凭证
  • 能够注册和接收推送通知的移动应用程序

设置

名称 描述
enable_amazon_sns_pns 启用/禁用插件功能
amazon_sns_access_key_id AWS 访问密钥 ID
amazon_sns_secret_access_key AWS 密钥访问密钥
amazon_sns_region AWS 区域(例如,us-east-1)
amazon_sns_apns_application_arn SNS 中 iOS 平台应用程序的 ARN
amazon_sns_gcm_application_arn SNS 中 Android 平台应用程序的 ARN
5 个赞

大家好!我使用的是 discourse/discourse 镜像中的 Discourse 3.5.2,这是唯一在安装过程中导致问题的插件,导致我们的安装出现 5xx 错误。错误如下:

ActionView::Template::Error (在加载路径中找不到资源 'plugins/discourse-amazon-sns.js'。)
lib/freedom_patches/propshaft_patches.rb:16:in `compute_asset_path'
app/helpers/application_helper.rb:97:in `script_asset_path'
app/helpers/application_helper.rb:147:in `block in preload_script'
app/helpers/application_helper.rb:146:in `map'
app/helpers/application_helper.rb:146:in `preload_script'
app/views/layouts/application.html.erb:36
app/views/layouts/application.html.erb:35:in `each'
app/views/layouts/application.html.erb:35
lib/topic_list_responder.rb:16:in `block (2 levels) in respond_with_list'
lib/topic_list_responder.rb:7:in `respond_with_list'
app/controllers/list_controller.rb:115:in `block (2 levels) in <class:ListController>'
app/controllers/application_controller.rb:433:in `block in with_resolved_locale'
app/controllers/application_controller.rb:433:in `with_resolved_locale'
app/controllers/application_controller.rb:1065:in `ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:410:in `call'

所有资源都已通过运行以下命令预编译:

RAILS_ENV=production bundle exec rake assets:precompile

您能帮我分析一下可能导致此问题的原因吗?

很抱歉。这是个新错误吗?也就是说,您之前已经安装了这个插件,但它在某个时候停止工作了?

这是新东西,我们刚刚将插件引入我们的安装中(我们有其他插件,它们都可以正常工作),但随后网站出现 5xx 错误,当我检查日志时,我看到了我发给您的内容。我的 Dockerfile 大致如下所示:

FROM discourse/discourse:3.5.2

WORKDIR /var/www/discourse

# 安装 discourse-amazon-sns 插件
RUN git clone https://github.com/discourse/discourse-amazon-sns.git /var/www/discourse/plugins/discourse-amazon-sns \
    && chown -R discourse:discourse /var/www/discourse/plugins/discourse-amazon-sns

EXPOSE 80

那是一个实验性的镜像,与插件会有很多兼容性问题

2 个赞

是的,@caue-pareto,抱歉,我认为这与该图片有关。在我遵循标准安装的自托管安装中,我看不到此插件有任何问题。

1 个赞