2013年4月9日火曜日

Pushalot - WindowsPhoneにPush通知


WindowsPhoneへのPush通知は長いことTwiProwl/IMAProwl + toastyという組み合わせで使っていたのだがPushalotという良さそうなサービス、アプリケーションを見つけたので早速試してみた。

Pushalot

toastyと比べるとPushalotは以下の点が優れている。

  • WindowsPhoneだけでなく、Windows 8向けにもクライアントアプリが用意されている。
  • Push通知させるデバイスの管理がWeb上で行える。
  • SSLに対応(toastyは対応してない)
  • WindowsPhone8のLockscreenに未読の通知件数を表示させられる。

  • 既読ステータスをデバイス間で同期できる。
    例:Lumia920と820に同じ通知をPush。920で通知を確認。820側も自動的に既読状態になる。

TwiProwlをPushalotに対応させる



PushalotのAPIページにRubyのサンプルコードが載ってるのでそれを使うのが楽

私はTwiProwlの360行目あたりに以下のコードを挿入した。
  def pushalot( icon, params={}, user = nil )
    begin
      require "net/https"

      url = URI.parse("https://pushalot.com/api/sendmessage")
      req = Net::HTTP::Post.new(url.path)
      req.set_form_data({
      :AuthorizationToken => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      :Title => params[:event],
      :Body => params[:description],
      :Image  => "https://ar3r3.com/icon_twiprowl.png",
      :Source => params[:application],
      
      })
      res = Net::HTTP.new(url.host, url.port)
      res.use_ssl = true
      res.verify_mode = OpenSSL::SSL::VERIFY_PEER
      res.start {|http| http.request(req) }
    rescue
      error "Error while Prowling: #{$!}"
    end
  end

こうした方がいいよ!みたいなツッコミ頂けると喜びます。