class Xinge::Base
Constants
- DEFAULT_OPTIONS
- HOST
- HTTP_METHOD
Public Class Methods
new(accessId = nil, secretKey = nil, options = {})
click to toggle source
# File lib/xinge/base.rb, line 27 def initialize(accessId = nil, secretKey = nil, options = {}) raise 'accessId is invalid' unless accessId.is_a? Integer raise 'secretKey is invalid' if !secretKey.is_a?(String) or secretKey.strip.size == 0 @accessId = accessId @secretKey = secretKey.strip @options = DEFAULT_OPTIONS.merge options end
Public Instance Methods
application_get_app_device_num(params = {})
click to toggle source
查询应用覆盖的设备数
# File lib/xinge/base.rb, line 85 def application_get_app_device_num(params = {}) self.send_request('application','get_app_device_num',params) end
push_all_device(message_type, message, params = {})
click to toggle source
push消息(包括通知和透传消息)给app的所有设备
# File lib/xinge/base.rb, line 57 def push_all_device(message_type, message, params = {}) params.merge!({ message_type: message_type, message: message }) self.send_request('push','all_device',params) end
push_cancel_timing_task(push_id, params = {})
click to toggle source
取消尚未触发的定时群发任务
# File lib/xinge/base.rb, line 95 def push_cancel_timing_task(push_id, params = {}) params.merge!({ push_id: push_id }) @request.fetch(params) self.send_request('push','cancel_timing_task',params) end
push_get_msg_status(push_ids, params = {})
click to toggle source
查询群发消息发送状态
# File lib/xinge/base.rb, line 77 def push_get_msg_status(push_ids, params = {}) params.merge!({ push_ids: push_ids.to_json }) self.send_request('push','get_msg_status',params) end
push_single_account(account, message_type, message, params = {})
click to toggle source
push消息(包括通知和透传消息)给单个账户或别名
# File lib/xinge/base.rb, line 47 def push_single_account(account, message_type, message, params = {}) params.merge!({ account: account, message_type: message_type, message: message }) self.send_request('push','single_account',params) end
push_single_device(device_token, message_type, message, params = {})
click to toggle source
push消息(包括通知和透传消息)给单个设备
# File lib/xinge/base.rb, line 37 def push_single_device(device_token, message_type, message, params = {}) params.merge!({ device_token: device_token, message: message, message_type: message_type }) self.send_request('push','single_device',params) end
Protected Instance Methods
build_simple_message(title, content)
click to toggle source
# File lib/xinge/base.rb, line 155 def build_simple_message(title, content) raise 'let child class to implement it.' end
get_request_url(type,method)
click to toggle source
# File lib/xinge/base.rb, line 151 def get_request_url(type,method) "/#{@options[:api_version]}/#{type}/#{method}" end
send_request(type,method,params = {})
click to toggle source
# File lib/xinge/base.rb, line 137 def send_request(type,method,params = {}) params.merge!({access_id: @accessId, timestamp: Time.now.to_i}) #sign params params_string = params.sort.map{ |h| h.join('=') }.join sign = Digest::MD5.hexdigest("#{HTTP_METHOD.to_s.upcase}#{HOST}#{self.get_request_url(type,method)}#{params_string}#{@secretKey}") params.merge!({ sign: sign }) options = { body: params } result = JSON.parse(self.class.send(HTTP_METHOD,self.get_request_url(type,method), options)) [result["ret_code"], result["err_msg"]] end