Commit 377a87dd66f6120b32bc14a0af0bb64a89b4cd06
1 parent
4ab4a801
Exists in
master
添加异步任务接口
Showing
3 changed files
with
65 additions
and
0 deletions
Show diff stats
README.md
... | ... | @@ -203,6 +203,21 @@ suite_api.auth_url(code, uri, state="suite") |
203 | 203 | group_client.auth_login.get_login_info_by_secret(auth_code, provider_secret) |
204 | 204 | ``` |
205 | 205 | |
206 | +## 异步任务接口 | |
207 | + | |
208 | +```ruby | |
209 | + # 邀请成员关注 | |
210 | + group_client.async_task.invite_user(callback, invite_info={}) | |
211 | + # 增量更新成员 | |
212 | + group_client.async_task.sync_user(callback, media_id) | |
213 | + # 全量覆盖成员 | |
214 | + group_client.async_task.replace_user(callback, media_id) | |
215 | + # 全量覆盖部门 | |
216 | + group_client.async_task.replace_party(callback, media_id) | |
217 | + # 获取异步任务结果 | |
218 | + group_client.async_task.get_result(job_id) | |
219 | +``` | |
220 | + | |
206 | 221 | ### 应用套件的回调通知处理 |
207 | 222 | |
208 | 223 | Wiki: http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%9B%9E%E8%B0%83%E5%8D%8F%E8%AE%AE | ... | ... |
... | ... | @@ -0,0 +1,46 @@ |
1 | +module QyWechatApi | |
2 | + module Api | |
3 | + class AsyncTask < Base | |
4 | + | |
5 | + CALLBACK_KEYS = ["url", "token", "encodingaeskey"].freeze | |
6 | + | |
7 | + BATCH_METHOD = ["sync_user", "replace_user", "replace_party"].freeze | |
8 | + | |
9 | + # 邀请成员关注 | |
10 | + def invite_user(callback, invite_info={}) | |
11 | + check_callback(callback) | |
12 | + invite_info = invite_info["callback"] = callback | |
13 | + http_post("inviteuser", invite_info) | |
14 | + end | |
15 | + | |
16 | + # 增量更新成员 | |
17 | + # 全量覆盖成员 | |
18 | + # 全量覆盖部门 | |
19 | + BATCH_METHOD.each do |m_name| | |
20 | + define_method m_name do |callback, media_id| | |
21 | + check_callback(callback) | |
22 | + payload = {media_id: media_id, callback: callback} | |
23 | + http_post(m_name.sub("_", ""), payload) | |
24 | + end | |
25 | + end | |
26 | + | |
27 | + # 获取异步任务结果 | |
28 | + def get_result(job_id) | |
29 | + payload = {job_id: job_id} | |
30 | + http_post("getresult", payload) | |
31 | + end | |
32 | + | |
33 | + private | |
34 | + | |
35 | + def check_callback(callback) | |
36 | + if (callback.keys - CALLBACK_KEYS).present? | |
37 | + raise "callback param must include #{CALLBACK_KEYS.join(',')}" | |
38 | + end | |
39 | + end | |
40 | + | |
41 | + def base_url | |
42 | + "/batch" | |
43 | + end | |
44 | + end | |
45 | + end | |
46 | +end | ... | ... |
lib/qy_wechat_api/client.rb