BMO (Beemo)
BMO is a gem to Push Notifications to iOS (via APNS) and Android (via GCM). It handles TCP & HTTP Proxies.
Project | BMO |
---|---|
Gem Name | bmo |
License | MIT |
Version | |
Dependency Status | |
Continuous Integration | |
Quality Metric | |
Test Coverage | |
Homepage | BMO |
Documentation | Rdoc |
Why another gem ?
I needed to use stunnel (TCP Proxy for encrypting with SSL/TLS) and a HTTP Proxy. The existing gems couldn't.
Installation
gem install bmo
In Gemfile :
gem 'bmo'
APNS
Usage
token = "123456789" # The device token given to you by Apple
data = {aps: {alert: "Hello from BMO!"}}
BMO.send_ios_notification(token, data)
The aps Hash content's is described here :
Configuration
Default Params :
BMO.configuration do |config|
config.apns.gateway_host = 'gateway.push.apple.com'
config.apns.gateway_port = 2195
config.apns.feedback_host = 'feedback.push.apple.com'
config.apns.feedback_port = 2196
config.apns.cert_path = nil
config.apns.cert_pass = nil
end
If you set a cert_path option it will use a SSL encapsulation otherwise it will use Pure TCP. This option is particularly useful if you use a stunnel.
GCM
Usage
token = "123456789" # The device token given to you by Apple
data = {message: "Hello from BMO!"}
BMO.send_android_notification(token, data)
The data content's is described here :
http://developer.android.com/google/gcm/server.html
Configuration
Default Params :
BMO.configuration do |config|
config.gcm.gateway_url = 'https://android.googleapis.com/gcm/send'
config.gcm.api_key = nil
end
You should set the api_key. It uses Faraday internally, so just set your regular http_proxy environment variable if need to configure a proxy.
License
BMO is released under the MIT License