Module: Wechat::Concern::Common

Included in:
Api, MpApi
Defined in:
lib/wechat/concern/common.rb

Instance Method Summary collapse

Instance Method Details

#addvoicetorecofortext(voice_id, file, file_format = 'mp3', lang = 'zh_CN') ⇒ Object



215
216
217
# File 'lib/wechat/concern/common.rb', line 215

def addvoicetorecofortext(voice_id, file, file_format = 'mp3', lang = 'zh_CN')
  post_file 'media/voice/addvoicetorecofortext', file, params: { format: file_format, voice_id: voice_id, lang: lang }
end

#custom_message_send(message) ⇒ Object



171
172
173
# File 'lib/wechat/concern/common.rb', line 171

def custom_message_send(message)
  post 'message/custom/send', message.is_a?(Wechat::Message) ? message.to_json : JSON.generate(message), content_type: :json
end

#customservice_getonlinekflistObject



175
176
177
# File 'lib/wechat/concern/common.rb', line 175

def customservice_getonlinekflist
  get 'customservice/getonlinekflist'
end

#get_material(media_id) ⇒ Object



144
145
146
# File 'lib/wechat/concern/common.rb', line 144

def get_material(media_id)
  post 'material/get_material', JSON.generate(media_id: media_id), as: :file
end

#getusercumulate(begin_date, end_date) ⇒ Object



211
212
213
# File 'lib/wechat/concern/common.rb', line 211

def getusercumulate(begin_date, end_date)
  post 'getusercumulate', JSON.generate(begin_date: begin_date, end_date: end_date), base: Wechat::Api::DATACUBE_BASE
end

#getusersummary(begin_date, end_date) ⇒ Object



207
208
209
# File 'lib/wechat/concern/common.rb', line 207

def getusersummary(begin_date, end_date)
  post 'getusersummary', JSON.generate(begin_date: begin_date, end_date: end_date), base: Wechat::Api::DATACUBE_BASE
end

#group_create(group_name) ⇒ Object



10
11
12
# File 'lib/wechat/concern/common.rb', line 10

def group_create(group_name)
  post 'groups/create', JSON.generate(group: { name: group_name })
end

#group_delete(groupid) ⇒ Object



18
19
20
# File 'lib/wechat/concern/common.rb', line 18

def group_delete(groupid)
  post 'groups/delete', JSON.generate(group: { id: groupid })
end

#group_update(groupid, new_group_name) ⇒ Object



14
15
16
# File 'lib/wechat/concern/common.rb', line 14

def group_update(groupid, new_group_name)
  post 'groups/update', JSON.generate(group: { id: groupid, name: new_group_name })
end

#groupsObject



6
7
8
# File 'lib/wechat/concern/common.rb', line 6

def groups
  get 'groups/get'
end

#material(media_id) ⇒ Object



138
139
140
141
142
# File 'lib/wechat/concern/common.rb', line 138

def material(media_id)
  ActiveSupport::Deprecation.warn('material is deprecated. use get_material instead.')

  post 'material/get_material', JSON.generate(media_id: media_id), as: :file
end

#material_add(type, file, opts = {}) ⇒ Object



156
157
158
159
160
161
# File 'lib/wechat/concern/common.rb', line 156

def material_add(type, file, opts = {})
  params = { type: type }
  params.merge!(description: opts.slice(:title, :introduction).to_json) if type == 'video'

  post_file 'material/add_material', file, params: params
end

#material_add_news(mpnews_message) ⇒ Object



163
164
165
# File 'lib/wechat/concern/common.rb', line 163

def material_add_news(mpnews_message)
  post 'material/add_news', mpnews_message.to_json
end

#material_countObject



148
149
150
# File 'lib/wechat/concern/common.rb', line 148

def material_count
  get 'material/get_materialcount'
end

#material_delete(media_id) ⇒ Object



167
168
169
# File 'lib/wechat/concern/common.rb', line 167

def material_delete(media_id)
  post 'material/del_material', JSON.generate(media_id: media_id)
end

#material_list(type, offset, count) ⇒ Object



152
153
154
# File 'lib/wechat/concern/common.rb', line 152

def material_list(type, offset, count)
  post 'material/batchget_material', JSON.generate(type: type, offset: offset, count: count)
end


112
113
114
# File 'lib/wechat/concern/common.rb', line 112

def menu
  get 'menu/get'
end


125
126
127
128
# File 'lib/wechat/concern/common.rb', line 125

def menu_addconditional(menu)
  # Wechat not accept 7bit escaped json(eg \uxxxx), must using UTF-8, possible security vulnerability?
  post 'menu/addconditional', JSON.generate(menu)
end


120
121
122
123
# File 'lib/wechat/concern/common.rb', line 120

def menu_create(menu)
  # 微信不接受 7bit escaped json(eg \uxxxx),中文必须 UTF-8 编码,这可能是个安全漏洞
  post 'menu/create', JSON.generate(menu)
end


134
135
136
# File 'lib/wechat/concern/common.rb', line 134

def menu_delconditional(menuid)
  post 'menu/delconditional', JSON.generate(menuid: menuid)
end


116
117
118
# File 'lib/wechat/concern/common.rb', line 116

def menu_delete
  get 'menu/delete'
end


130
131
132
# File 'lib/wechat/concern/common.rb', line 130

def menu_trymatch(user_id)
  post 'menu/trymatch', JSON.generate(user_id: user_id)
end

#message_mass_delete(msg_id) ⇒ Object



79
80
81
# File 'lib/wechat/concern/common.rb', line 79

def message_mass_delete(msg_id)
  post 'message/mass/delete', JSON.generate(msg_id: msg_id)
end

#message_mass_get(msg_id) ⇒ Object



87
88
89
# File 'lib/wechat/concern/common.rb', line 87

def message_mass_get(msg_id)
  post 'message/mass/get', JSON.generate(msg_id: msg_id)
end

#message_mass_preview(message) ⇒ Object



83
84
85
# File 'lib/wechat/concern/common.rb', line 83

def message_mass_preview(message)
  post 'message/mass/preview', message.to_json
end

#message_mass_sendall(message) ⇒ Object



75
76
77
# File 'lib/wechat/concern/common.rb', line 75

def message_mass_sendall(message)
  post 'message/mass/sendall', message.to_json
end

#qrcode_create_limit_scene(scene_id_or_str) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# File 'lib/wechat/concern/common.rb', line 60

def qrcode_create_limit_scene(scene_id_or_str)
  case scene_id_or_str
  when 0.class
    post 'qrcode/create', JSON.generate(action_name: 'QR_LIMIT_SCENE',
                                        action_info: { scene: { scene_id: scene_id_or_str } })
  else
    post 'qrcode/create', JSON.generate(action_name: 'QR_LIMIT_STR_SCENE',
                                        action_info: { scene: { scene_str: scene_id_or_str } })
  end
end

#qrcode_create_scene(scene_id_or_str, expire_seconds = 604800) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/wechat/concern/common.rb', line 47

def qrcode_create_scene(scene_id_or_str, expire_seconds = 604800)
  case scene_id_or_str
  when 0.class
    post 'qrcode/create', JSON.generate(expire_seconds: expire_seconds,
                                        action_name: 'QR_SCENE',
                                        action_info: { scene: { scene_id: scene_id_or_str } })
  else
    post 'qrcode/create', JSON.generate(expire_seconds: expire_seconds,
                                        action_name: 'QR_STR_SCENE',
                                        action_info: { scene: { scene_str: scene_id_or_str } })
  end
end

#queryrecoresultfortext(voice_id, lang = 'zh_CN') ⇒ Object



219
220
221
# File 'lib/wechat/concern/common.rb', line 219

def queryrecoresultfortext(voice_id, lang = 'zh_CN')
  post 'media/voice/queryrecoresultfortext', nil, params: { voice_id: voice_id, lang: lang }
end

#shorturl(long_url) ⇒ Object



71
72
73
# File 'lib/wechat/concern/common.rb', line 71

def shorturl(long_url)
  post 'shorturl', JSON.generate(action: 'long2short', long_url: long_url)
end

#tag(tagid, next_openid = '') ⇒ Object



203
204
205
# File 'lib/wechat/concern/common.rb', line 203

def tag(tagid, next_openid = '')
  post 'user/tag/get', JSON.generate(tagid: tagid, next_openid: next_openid)
end

#tag_add_user(tagid, openids) ⇒ Object



195
196
197
# File 'lib/wechat/concern/common.rb', line 195

def tag_add_user(tagid, openids)
  post 'tags/members/batchtagging', JSON.generate(openid_list: openids, tagid: tagid)
end

#tag_create(tag_name) ⇒ Object



183
184
185
# File 'lib/wechat/concern/common.rb', line 183

def tag_create(tag_name)
  post 'tags/create', JSON.generate(tag: { name: tag_name })
end

#tag_del_user(tagid, openids) ⇒ Object



199
200
201
# File 'lib/wechat/concern/common.rb', line 199

def tag_del_user(tagid, openids)
  post 'tags/members/batchuntagging', JSON.generate(openid_list: openids, tagid: tagid)
end

#tag_delete(tagid) ⇒ Object



191
192
193
# File 'lib/wechat/concern/common.rb', line 191

def tag_delete(tagid)
  post 'tags/delete', JSON.generate(tag: { id: tagid })
end

#tag_update(tagid, new_tag_name) ⇒ Object



187
188
189
# File 'lib/wechat/concern/common.rb', line 187

def tag_update(tagid, new_tag_name)
  post 'tags/update', JSON.generate(tag: { id: tagid, name: new_tag_name })
end

#tagsObject



179
180
181
# File 'lib/wechat/concern/common.rb', line 179

def tags
  get 'tags/get'
end

#translatecontent(from_content, lfrom = 'zh_CN', lto = 'en_US') ⇒ Object



223
224
225
# File 'lib/wechat/concern/common.rb', line 223

def translatecontent(from_content, lfrom = 'zh_CN', lto = 'en_US')
  post 'media/voice/translatecontent', from_content, params: { lfrom: lfrom, lto: lto }
end

#user(openid) ⇒ Object



27
28
29
# File 'lib/wechat/concern/common.rb', line 27

def user(openid)
  get 'user/info', params: { openid: openid }
end

#user_batchget(openids, lang = 'zh-CN') ⇒ Object



31
32
33
# File 'lib/wechat/concern/common.rb', line 31

def user_batchget(openids, lang = 'zh-CN')
  post 'user/info/batchget', JSON.generate(user_list: openids.collect { |v| { openid: v, lang: lang } })
end

#user_change_group(openid, to_groupid) ⇒ Object



39
40
41
# File 'lib/wechat/concern/common.rb', line 39

def user_change_group(openid, to_groupid)
  post 'groups/members/update', JSON.generate(openid: openid, to_groupid: to_groupid)
end

#user_group(openid) ⇒ Object



35
36
37
# File 'lib/wechat/concern/common.rb', line 35

def user_group(openid)
  post 'groups/getid', JSON.generate(openid: openid)
end

#user_update_remark(openid, remark) ⇒ Object



43
44
45
# File 'lib/wechat/concern/common.rb', line 43

def user_update_remark(openid, remark)
  post 'user/info/updateremark', JSON.generate(openid: openid, remark: remark)
end

#users(nextid = nil) ⇒ Object



22
23
24
25
# File 'lib/wechat/concern/common.rb', line 22

def users(nextid = nil)
  params = { params: { next_openid: nextid } } if nextid.present?
  get('user/get', params || {})
end

#web_access_token(code) ⇒ Object



227
228
229
230
231
232
233
234
235
# File 'lib/wechat/concern/common.rb', line 227

def web_access_token(code)
  params = {
    appid: access_token.appid,
    secret: access_token.secret,
    code: code,
    grant_type: 'authorization_code'
  }
  client.get 'oauth2/access_token', params: params, base: Wechat::Api::OAUTH2_BASE
end

#web_auth_access_token(web_access_token, openid) ⇒ Object



237
238
239
# File 'lib/wechat/concern/common.rb', line 237

def web_auth_access_token(web_access_token, openid)
  client.get 'auth', params: { access_token: web_access_token, openid: openid }, base: Wechat::Api::OAUTH2_BASE
end

#web_refresh_access_token(user_refresh_token) ⇒ Object



241
242
243
244
245
246
247
248
# File 'lib/wechat/concern/common.rb', line 241

def web_refresh_access_token(user_refresh_token)
  params = {
    appid: access_token.appid,
    grant_type: 'refresh_token',
    refresh_token: user_refresh_token
  }
  client.get 'oauth2/refresh_token', params: params, base: Wechat::Api::OAUTH2_BASE
end

#web_userinfo(web_access_token, openid, lang = 'zh_CN') ⇒ Object



250
251
252
# File 'lib/wechat/concern/common.rb', line 250

def web_userinfo(web_access_token, openid, lang = 'zh_CN')
  client.get 'userinfo', params: { access_token: web_access_token, openid: openid, lang: lang }, base: Wechat::Api::OAUTH2_BASE
end

#wxa_create_qrcode(path, width = 430) ⇒ Object



99
100
101
# File 'lib/wechat/concern/common.rb', line 99

def wxa_create_qrcode(path, width = 430)
  post 'wxaapp/createwxaqrcode', JSON.generate(path: path, width: width)
end


107
108
109
110
# File 'lib/wechat/concern/common.rb', line 107

def wxa_generate_urllink(body_hash)
  # https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
  post 'generate_urllink', JSON.generate(body_hash), base: Wechat::Api::WXA_BASE
end

#wxa_get_wxacode(path, width = 430) ⇒ Object



91
92
93
# File 'lib/wechat/concern/common.rb', line 91

def wxa_get_wxacode(path, width = 430)
  post 'getwxacode', JSON.generate(path: path, width: width), base: Wechat::Api::WXA_BASE
end

#wxa_get_wxacode_unlimit(scene, page = nil, width = 430) ⇒ Object



95
96
97
# File 'lib/wechat/concern/common.rb', line 95

def wxa_get_wxacode_unlimit(scene, page = nil, width = 430)
  post 'getwxacodeunlimit', JSON.generate(scene: scene, page: page, width: width), base: Wechat::Api::WXA_BASE
end

#wxa_msg_sec_check(content) ⇒ Object



103
104
105
# File 'lib/wechat/concern/common.rb', line 103

def wxa_msg_sec_check(content)
  post 'msg_sec_check', JSON.generate(content: content), base: Wechat::Api::WXA_BASE
end