在rails中自动发送推送通知

时间:2016-08-31 10:50:44

标签: ruby-on-rails notifications push

我希望在更新数据库记录时自动发送推送通知。推送通知是针对Android设备的。这些记录来自Ruby on Rails应用程序。

任何帮助都会很明显。谢谢。

2 个答案:

答案 0 :(得分:1)

您要做的是在表中的记录更新时向移动设备发送推送通知。我建议您必须以可以触发推送通知的方式设计表格和其他所有内容。请检查以下方案。为了在customers表中的记录更新时向Android设备发送推送通知。

<强>模型

<强> customer.rb

class Customer < ActiveRecord::Base

  after_save :send_push_notification

  def send_push_notification
    PushWorker.perform_async({id: self.id})
  end

  def send_push
    require 'gcm'

    gcm = GCM.new(ENV['API_KEY'])

    registration_ids= Device.android.map(&:registration_id)
    options = {
      data: data,
      collapse_key: collapse_key || 'my_app'
    }

    response = gcm.send(registration_ids, options)
  end

end

异步工作者

<强> push_worker.rb

class PushWorker
  include Sidekiq::Worker
  include Sidetiq::Schedulable

  def perform(params)
    customer = Customer.find(params[:id])
    customer.send_push
  end

end

答案 1 :(得分:0)

通过google尝试(firebase云消息传递)[https://firebase.google.com/docs/cloud-messaging/]服务,这是较新的GCM。

基本上在更新/插入时,您可以推送到消息服务以通知设备。

查看此(问题)[https://stackoverflow.com/a/22242606/3366016]