Rubyでparse.com経由でPush通知をする

parse.comとは

MBaaS(Mobile Backend as a Service)の一種で、簡単にAndroidIOSにPush通知できるサービス。

https://www.parse.com/

RubyでPush通知を送る

gem

Rubyからはparse-ruby-clientというgemを使うことで楽に使える。しかし、ドキュメントが分かりにくく、使うのに苦労した。
adelevie/parse-ruby-client · GitHub

Gemfile

parse-ruby-clientのmasterブランチにはリリース版に含まれていない変更が多数あるので、Gemfileに以下のように書く必要がある。(12/28時点)

gem 'parse-ruby-client', git: 'https://github.com/adelevie/parse-ruby-client.git'

コード

client = Parse.create :application_id => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                      :api_key        => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', # REST API key
                      :quiet          => false  # quietはオプションでデファルトでfalse

push = client.push('Hello')
push.where = {} # 全デバイスに送る

result = push.save['result'] # {"result"=>true}

Parse.createで認証を通し、client.pushで送るデータをセットし、push.saveで実際に各端末に通知を投げている。
また、上のコードでは文字列を各端末に送信しているが、JSONを送ることもできる。client.pushの引数をハッシュにすればよい。

json = {'test'=>'hello'}
push = client.push(json)

Androidで文字列を送信した際は自動で通知画面が生成されるが、JSONを送信したときは通知されないので自分で通知を生成する必要がある。iOSは未確認。