Class: JPush::Pusher

Inherits:
Handler show all
Defined in:
lib/jpush/pusher.rb

Instance Method Summary collapse

Methods inherited from Handler

#initialize

Constructor Details

This class inherits a constructor from JPush::Handler

Instance Method Details

#get_cid(count = nil, type = nil) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/jpush/pusher.rb', line 30

def get_cid(count=nil, type=nil)
  params = {
    count: count,
    type: type
  }.select { |_, value| !value.nil? }
  url = base_url + 'cid'
  Http::Client.get(@jpush, url, params: params)
end

#push(push_payload) ⇒ Object

POST api.jpush.cn/v3/push 向某单个设备或者某设备列表推送一条通知、或者消息



18
19
20
21
22
23
24
25
# File 'lib/jpush/pusher.rb', line 18

def push(push_payload)
  if push_payload.cid.nil?
    cid_response = get_cid(count=1, type='push')
    cid = cid_response.body['cidlist'].at(0)
    push_payload.set_cid(cid)
  end
  send_push(base_url, push_payload)
end

#push_batch_alias(single_push_payloads) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/jpush/pusher.rb', line 58

def push_batch_alias(single_push_payloads)
  cid_response = get_cid(count=single_push_payloads.size, type='push')
  cidlist = cid_response.body['cidlist']
  body = {}
  body['pushlist'] = {}
  single_push_payloads.each { |payload|
    cid = cidlist.pop
    body['pushlist'][cid] = payload.to_hash
  }
  url = base_url + 'batch/alias/single'
  Http::Client.post(@jpush, url, body: body)
end

#push_batch_regid(single_push_payloads) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/jpush/pusher.rb', line 42

def push_batch_regid(single_push_payloads)
  cid_response = get_cid(count=single_push_payloads.size, type='push')
  cidlist = cid_response.body['cidlist']
  body = {}
  body['pushlist'] = {}
  single_push_payloads.each { |payload|
    cid = cidlist.pop
    body['pushlist'][cid] = payload.to_hash
  }
  url = base_url + 'batch/regid/single'
  Http::Client.post(@jpush, url, body: body)
end

#validate(push_payload) ⇒ Object

POST api.jpush.cn/v3/push/validate 验证推送调用是否能够成功,与推送 API 的区别在于:不向用户发送任何消息



11
12
13
14
# File 'lib/jpush/pusher.rb', line 11

def validate(push_payload)
  url = base_url + 'validate'
  send_push(url, push_payload)
end