Class: Xinge::Base

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/xinge/base.rb

Direct Known Subclasses

Android, Ios

Constant Summary collapse

DEFAULT_OPTIONS =
{
  api_version: 'v2'
}
HOST =
"openapi.xg.qq.com"
HTTP_METHOD =
:post

Instance Method Summary collapse

Constructor Details

#initialize(accessId = nil, secretKey = nil, options = {}) ⇒ Base



33
34
35
36
37
38
39
# File 'lib/xinge/base.rb', line 33

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

Instance Method Details

#application_get_app_device_num(params = {}) ⇒ Object

查询应用覆盖的设备数



109
110
111
# File 'lib/xinge/base.rb', line 109

def application_get_app_device_num(params = {})
  self.send_request('application','get_app_device_num',params)
end

#push_all_device(message_type, message, params = {}) ⇒ Object

push消息(包括通知和透传消息)给app的所有设备



81
82
83
84
85
86
87
# File 'lib/xinge/base.rb', line 81

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 = {}) ⇒ Object

取消尚未触发的定时群发任务



119
120
121
122
123
124
125
# File 'lib/xinge/base.rb', line 119

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 = {}) ⇒ Object

查询群发消息发送状态



101
102
103
104
105
106
# File 'lib/xinge/base.rb', line 101

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_multi_device(device_list, message_type, message, params = {}) ⇒ Object

push到多个设备



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/xinge/base.rb', line 53

def push_multi_device(device_list, message_type, message, params = {})
  params1 = params.merge({
    message:      message,
    message_type: message_type
    })
  result = self.send_request('push','create_multipush', params1)
  raise result.to_s if result['ret_code'] != 0

  push_id = result['result']['push_id']
  params.merge!({
    device_list:  device_list.to_json,
    push_id:      push_id
  })

  self.send_request('push', 'device_list_multiple', params)
end

#push_single_account(account, message_type, message, params = {}) ⇒ Object

push消息(包括通知和透传消息)给单个账户或别名



71
72
73
74
75
76
77
78
# File 'lib/xinge/base.rb', line 71

def (, message_type, message, params = {})
  params.merge!({
    account: ,
    message_type: message_type,
    message: message
    })
  self.send_request('push','single_account',params)
end

#push_single_device(device_token, message_type, message, params = {}) ⇒ Object

push消息(包括通知和透传消息)给单个设备



43
44
45
46
47
48
49
50
# File 'lib/xinge/base.rb', line 43

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

#push_tags_device(message_type, message, tags_list, tags_op, params = {}) ⇒ Object

push消息(包括通知和透传消息)给tags指定的设备



90
91
92
93
94
95
96
97
98
# File 'lib/xinge/base.rb', line 90

def push_tags_device(message_type, message, tags_list, tags_op, params = {})
  params.merge!({
    message_type: message_type,
    message: message,
    tags_list: tags_list.to_json,
    tags_op: tags_op
    })
  self.send_request('push','tags_device',params)
end

#tags_batch_del(tag_token_list, params = {}) ⇒ Object

批量删除标签



136
137
138
139
140
141
# File 'lib/xinge/base.rb', line 136

def tags_batch_del(tag_token_list, params = {})
  params.merge!({
    tag_token_list: tag_token_list
    })
  self.send_request('tags','batch_del',params)
end

#tags_batch_set(tag_token_list, params = {}) ⇒ Object

批量设置标签



128
129
130
131
132
133
# File 'lib/xinge/base.rb', line 128

def tags_batch_set(tag_token_list, params = {})
  params.merge!({
    tag_token_list: tag_token_list
    })
  self.send_request('tags','batch_set',params)
end

#tags_query_app_tags(params = {}) ⇒ Object

查询应用的Tags



114
115
116
# File 'lib/xinge/base.rb', line 114

def tags_query_app_tags(params = {})
  self.send_request('tags','query_app_tags',params)
end

#tags_query_tag_token_num(tag, params = {}) ⇒ Object

查询应用某标签关联的设备数量



152
153
154
155
156
157
# File 'lib/xinge/base.rb', line 152

def tags_query_tag_token_num(tag, params = {})
  params.merge!({
    tag: tag
    })
  self.send_request('tags','query_tag_token_num',params)
end

#tags_query_token_tags(device_token, params = {}) ⇒ Object

查询应用某token设置的标签



144
145
146
147
148
149
# File 'lib/xinge/base.rb', line 144

def tags_query_token_tags(device_token, params = {})
  params.merge!({
    device_token: device_token
    })
  self.send_request('tags','query_token_tags',params)
end