2

ユーザーが新しいメッセージを受け取るたびに、Apple プッシュ通知を送信したいと考えています。このチュートリアルを見つけましたhttp://www.waratuman.com/2011/01/13/apple-push-with-heroku/

そしてこのコードで

 class Jobs::APN::DeliverNotifications
   @queue = "apn"

   def self.perform
      APN::Notification.send_notifications
   end

 end

 class Jobs::APN::Feedback < Job
   @queue = "#{RAILS_ENV}::apn"

   def self.perform
     APN::Feedback.process_devices
   end

 end

 class Api::ApnController < ApplicationController
   skip_before_filter :verify_authenticity_token

   def create
     APN::Device.create(:token => params[:token])
     render :text => "", :status => 200
   end

   def subscribe
     device = params['token'] ? APN::Device.find_or_create_by_token(:token =>  params['token']) : nil
     event = Event.first(:conditions => {:id => params['event_id']})
     subscription = Subscription.new :device => device, :event => event

     status = 200
     if device && event && subscription.valid?
       subscription.save
     else
       status = 422
     end
     render :text => "", :status => status
   end

   def unsubscribe
     device = APN::Device.find_or_create_by_token(:token => params['token'])
     event = Event.first(:conditions => {:id => params['event_id']})
     subscription = Subscription.first(:conditions => {:device_id => device.id, :event_id => event.id})
     subscription.delete if subscription
     render :text => "", :status => 200
   end

 end

このコードが通知を設定してデバイスを登録することになっていることは知っていますが、実際に新しいメッセージの通知を送信したい場合はどうすればよいですか?

現在、メッセージ インデックスを持っています

   def index
     if params[:mailbox] == "sent"
       @messages = @user.sent_messages
     elsif params[:mailbox] == "unread"
       @messages = @user.received_messages.unread
     else
       @messages = @user.received_messages
     end


     respond_to do |format|
       format.html
       format.json { render :json => @messages }
     end
   end

したがって、未読パスには、特定のユーザーの未読メッセージがすべて表示されます。それらをプッシュ通知として送信したい。何かアドバイス?まだまだ勉強中なので曖昧ですみません。

4

1 に答える 1