Sha256: 3985c16f4be1a0a98b13871a9e648e73d8b69cdc361db9a8e69e09aa61cee1eb

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

require 'net/https'
require 'uri'
module Rhosync
  class Android
    def self.ping(params)
      begin
        settings = get_config(Rhosync.base_directory)[Rhosync.environment]
        authtoken = settings[:authtoken]

        url = URI.parse('https://android.apis.google.com/c2dm/send')

        req = Net::HTTP::Post.new url.path, 'Authorization' => "GoogleLogin auth=#{authtoken}" 
        req.set_form_data c2d_message(params)

        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = true
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE
        res = http.request(req)

      rescue Exception => error
        log "Error while sending ping: #{error}"
        raise error
      end
    end
    
    def self.c2d_message(params)
      data = {}
      data['registration_id'] = params['device_pin']
      data['collapse_key'] = (rand * 100000000).to_i.to_s
      data['data.do_sync'] = params['sources'] ? params['sources'].join(',') : ''
      data['data.alert'] = params['message'] if params['message']
      data['data.vibrate'] = params['vibrate'] if params['vibrate']
      data['data.sound'] = params['sound'] if params['sound']

      data
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rhosync-2.1.0.beta.1 lib/rhosync/ping/android.rb
rhosync-2.0.9 lib/rhosync/ping/android.rb