Уведомления Amazon SNS в Discourse

:information_source: Краткое описание Отправка push-уведомлений через Amazon SNS в пользовательское мобильное приложение.
:hammer_and_wrench: Ссылка на репозиторий GitHub - discourse/discourse-amazon-sns · GitHub
:open_book: Руководство по установке Как установить плагины в Discourse

Плагин discourse-amazon-sns обеспечивает поддержку push-уведомлений в форумах Discourse через службу Amazon Simple Notification Service (SNS). Он разработан для работы в связке с мобильным приложением для доставки push-уведомлений на устройства iOS и Android через APNS и GCM/FCM. Amazon SNS отвечает за взаимодействие с каждым протоколом, а этот плагин гарантирует, что события в Discourse (ответы, отслеживаемые темы, личные сообщения и т. д.) будут инициировать события в SNS.

Возможности

  • Поддержка push-уведомлений для платформ iOS (APNS) и Android (GCM/FCM)
  • Регистрация и управление токенами устройств
  • Автоматическая обработка отключенных или недействительных конечных точек
  • Интеграция с существующей системой уведомлений Discourse
  • Поддержка взаимодействия через веб-вью React Native

Требования

  • Аккаунт AWS с доступом к SNS
  • Настроенные платформенные приложения Amazon SNS для:
    • iOS (APNS или APNS_SANDBOX)
    • Android (GCM/FCM)
  • Учетные данные AWS с правами на публикацию в SNS
  • Мобильное приложение, способное регистрироваться для получения и получать push-уведомления

Параметры

Название Описание
enable_amazon_sns_pns Включение/отключение функциональности плагина
amazon_sns_access_key_id Идентификатор ключа доступа AWS
amazon_sns_secret_access_key Секретный ключ доступа AWS
amazon_sns_region Регион AWS (например, us-east-1)
amazon_sns_apns_application_arn ARN для платформенного приложения iOS в SNS
amazon_sns_gcm_application_arn ARN для платформенного приложения Android в SNS
5 лайков

Всем привет! Я использую Discourse 3.5.2 из образа discourse/discourse, и это единственный плагин, который вызывает проблемы при установке, приводя к ошибке 5xx в нашей системе. Ошибка выглядит следующим образом:

ActionView::Template::Error (The asset 'plugins/discourse-amazon-sns.js' was not found in the load path.)
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

# Install discourse-amazon-sns plugin
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 лайк