Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Apple Push Notifications on Rails
tree: 8d90537784

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
LICENSE
README
README.textile
Rakefile
apn_on_rails.gemspec

README.textile

APN on Rails (Apple Push Notifications on Rails)

APN on Rails is a Ruby on Rails gem that allows you to easily add Apple Push Notification (iPhone)
support to your Rails application.

Acknowledgements:

This gem is a re-write of a plugin that was written by Fabien Penso and Sam Soffes.
Their plugin was a great start, but it just didn’t quite reach the level I hoped it would.
I’ve re-written, as a gem, added a ton of tests, and I would like to think that I made it
a little nicer and easier to use.

Converting Your Certificate:

Once you have the certificate from Apple for your application, export your key
and the apple certificate as p12 files. Here is a quick walkthrough on how to do this:

1. Click the disclosure arrow next to your certificate in Keychain Access and select the certificate and the key.
2. Right click and choose `Export 2 items…`.
3. Choose the p12 format from the drop down and name it `cert.p12`.

Now covert the p12 file to a pem file:


  $ openssl pkcs12 -in cert.p12 -out apple_push_notification_production.pem -nodes -clcerts

Put ‘apple_push_notification_production.pem’ in config/

If you are using a development certificate, then change the name to apple_push_notification_development.pem instead.

Installing:

Stable (RubyForge):

  $ sudo gem install apn_on_rails

Edge (GitHub):

  $ sudo gem install markbates-apn_on_rails --source=http://gems.github.com

Rails Gem Management:

If you like to use the built in Rails gem management:


  config.gem 'apn_on_rails'

Or, if you like to live on the edge:


  config.gem 'markbates-apn_on_rails', :lib => 'apn_on_rails', :source => 'http://gems.github.com'

Setup and Configuration:

Once you have the gem installed via your favorite gem installation, you need to require it so you can
start to use it:

Add the following require, wherever it makes sense to you:


  require 'apn_on_rails'

You also need to add the following to your Rakefile so you can use the
Rake tasks that ship with APN on Rails:


  begin
    require 'apn_on_rails_tasks'
  rescue MissingSourceFile => e
    puts e.message
  end

Now, to create the tables you need for APN on Rails, run the following task:


  $ rake apn:db:migrate

APN on Rails uses the Configatron gem, http://github.com/markbates/configatron/tree/master,
to configure itself. APN on Rails has the following default configurations that you change as you
see fit:


  configatron.apn.passphrase # => ''
  configatron.apn.port # => 2195
  configatron.apn.host # => 'gateway.sandbox.push.apple.com'
  configatron.apn.cert #=> File.join(RAILS_ROOT, 'config', 'apple_push_notification_development.pem')
  
  # production:
  configatron.apn.host # => 'gateway.push.apple.com'
  configatron.apn.cert #=> File.join(RAILS_ROOT, 'config', 'apple_push_notification_production.pem')

That’s it, now you’re ready to start creating notifications.

Example:


  $ ./script/console
  >> device = APN::Device.create(:token => "XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX")
  >> notification = APN::Notification.new
  >> notification.device = device
  >> notification.badge = 5
  >> notification.sound = true
  >> notification.alert = "foobar"
  >> notification.save
  >> APN::Notification.send_notifications

You can also run the following Rake task to send your notifications:


  $ rake apn:notifications:deliver

Released under the MIT license.

Something went wrong with that request. Please try again.