2016-08-31 12 views
0

データベースレコードが更新されると自動的にプッシュ通知を送信したいと思います。プッシュ通知はアンドロイドデバイス向けです。レコードは、Ruby on Railsアプリケーションからのものです。レールでプッシュ通知を自動的に送信

助けがあれば分かります。事前におねがいします。

+0

これまで何を試していましたか? – spectras

+0

私は、デバイス側からレコードを更新し、データベースにレコードを更新するときに通知を送信したいのですが、Webアプリケーション側からはdevice.notではなく、デバイスからのレコード更新時にプッシュ通知を出します。 –

答えて

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 
+0

レコードをデバイス側からのレコードの更新時にデバイスに通知を送信します。デバイスからのレコードの更新時にプッシュ通知を発行します。 –

関連する問題