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