carp搭建公众平台(二)——获得所有客户信息和自定义任务
2014-02-18 09:31
288 查看
如不知道如何下载和部署carp,请看《carp的介绍和配置》一文。
根据开发者文档,公众平台的用户信息由3部分组成,第一次是获取openId,第二次获取用户信息,第三次获取组信息;
如果有1000个用户,就是需要发出2001个请求才能获得,所以一般获得一次后,把信息保存在本地数据库最好,同时由于请求次数过多,建议使用异步多线程获取,才能快速完成。
carp已经内建了一个task用来获取所有用户信息,并保存到数据库中;在demo中有个例子:GetAllFans,执行后会获取公众号的所有用户,并在数据库中保存了所有的用户信息,如图:
在carp中定义一个主动客服任务很简单,仔细观察公众平台提供的开发者手册,大多数url是这样的:
可以看出,只需要替换access_token就行了;
carp中定义这种新的task任务很简单,在weixin.task.xml中定义一个新的task元素就好了,主要是需要为这个task创建一个新的work类,方便任务完成后就行回调,举个例子,我们希望获得微信的分组信息后保存到数据库,则首先定义一个GroupGetWork类,如下:
可以看到,当任务执行成功后,将会解析返回的json数据,并保存到数据库中;
然后在weixin.task.xml中配置task元素:
OK,当需要执行这个任务是,只需要两行代码就够了:
Task task = carp.getTaskRepertory().getTaskByName("groupget");//获取任务
task.send();//发送任务
carp中内建了大部分的task和work,包括文件上传和下载,如果需要自定义新的回调work,继承Work接口即可;
如有问题,可发送邮件至150092628@qq.com
carp技术群:368193775
相关文章:
carp的介绍和配置
carp搭建公众平台(一)——发送客服消息
carp搭建公众平台(三)——上传下载多媒体文件
根据开发者文档,公众平台的用户信息由3部分组成,第一次是获取openId,第二次获取用户信息,第三次获取组信息;
如果有1000个用户,就是需要发出2001个请求才能获得,所以一般获得一次后,把信息保存在本地数据库最好,同时由于请求次数过多,建议使用异步多线程获取,才能快速完成。
carp已经内建了一个task用来获取所有用户信息,并保存到数据库中;在demo中有个例子:GetAllFans,执行后会获取公众号的所有用户,并在数据库中保存了所有的用户信息,如图:
在carp中定义一个主动客服任务很简单,仔细观察公众平台提供的开发者手册,大多数url是这样的:
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/groups/get?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
可以看出,只需要替换access_token就行了;
carp中定义这种新的task任务很简单,在weixin.task.xml中定义一个新的task元素就好了,主要是需要为这个task创建一个新的work类,方便任务完成后就行回调,举个例子,我们希望获得微信的分组信息后保存到数据库,则首先定义一个GroupGetWork类,如下:
public class GroupsGetWork extends Work { @Override public void failedToDo() throws WorkException { // TODO Auto-generated method stub } @Override public void toDo() throws WorkException { JSONArray groupsJson = JSONObject.fromObject(weixinResult.getJson()) .getJSONArray("groups"); FansInfoService service = new FansInfoService(); for (int i = 0; i < groupsJson.size(); i++) { JSONObject groupJson = groupsJson.getJSONObject(i); WeixinGroup group = new WeixinGroup(); group.setFname(groupJson.getString("name")); group.setWeixinId(groupJson.getString("id")); service.saveOrUpdateGroup(group); } } } |
然后在weixin.task.xml中配置task元素:
<task> <name>groupsget</name> <url><![CDATA[https://api.weixin.qq.com/cgi-bin/groups/get?access_token=ACCESS_TOKEN]]></url> <work>com.voa.weixin.work.GroupsGetWork</work> </task> |
Task task = carp.getTaskRepertory().getTaskByName("groupget");//获取任务
task.send();//发送任务
carp中内建了大部分的task和work,包括文件上传和下载,如果需要自定义新的回调work,继承Work接口即可;
如有问题,可发送邮件至150092628@qq.com
carp技术群:368193775
相关文章:
carp的介绍和配置
carp搭建公众平台(一)——发送客服消息
carp搭建公众平台(三)——上传下载多媒体文件
相关文章推荐
- carp搭建公众平台(一)——发送客服消息
- request方法获得客户信息
- 获得所有联系人信息。。。随便用,我也是借鉴别人的然后自己写出来的
- 获得手机当前的所有内容处理者(Contenthandler)的信息
- c# 如何获得你电脑安装的所有程序信息
- 两步实现Log4j记录java控制台输出的系统所有异常信息和自定义记录日志---->非常实用,强烈推荐阅读
- 获得WINDOWS下所有用户的信息
- 获得WINDOWS下所有用户的信息
- 【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计
- 搭建免费wifi,嗅探接入该wifi的所有网络信息
- 微软CRM4.0自定义实体使用“查找地址”功能从客户自动带出地址信息
- 【转】libxml2 如何获得某个节点的所有信息
- 获得有关任务的信息,OSTaskQuery()
- 获得本机所有网卡的IP和MAC地址信息
- java通过反射+javassist获得方法所有信息(返回值、方法名、参数类型列表、参数列表)
- 用PHP搭建学生信息管理平台
- 网鱼网咖-利用数加快速搭建大数据平台,极致洞察,为客户带来从所未有的体验。
- Android获得相机的所有信息
- 【C++】获得本机所有网卡的IP和MAC地址信息