carp搭建公众平台(一)——发送客服消息

    如不知道如何部署carp,请看carp的介绍和配置一文php

    公众平台提供的服务号可以为用户发送客服消息、得到用户列表、分组信息等内容;api

    carp经过weixin.task.xml文件进行此类消息的发送处理的配置,先解释一下配置选项异步

<task>ide

<name>downloadfile</name>post

<class>com.voa.weixin.task.DownloadFileTask</class>测试

        <method>get</method>this

<url><![CDATA[http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID]]></url>url

<work>com.voa.weixin.work.DownloadFileWork</work>spa

</task>.net

name:task的名字

method:接口提交方式,可省略,若是省略,默认为post

class:task的类名,可省略,若是省略,默认使用的上CommonTask类

url:公众平台开发文档提供的url接口(点击这里查看开发者文档)

work:消息发送成功后的回调类,可省略,如省略,则无后续回调


咱们使用demo中的SendCustomerMessage这个类来解释上述描述,首先在weixin.task.xml注册了一个task,以下:

<task>

<name>message</name>

<url><![CDATA[https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN]]></url>

<work>com.voa.weixin.work.CustomerMessageWork</work>

</task>

SendCustomerMessage代码以下:

public class SendCustomerMessage {

public static void main(String[] args) throws Exception {

Carp.ROOTPATH = System.getProperty("user.dir") + File.separator;

Carp carp = Carp.getInstance();

carp.init();

Task task = carp.getTaskRepertory().getTaskByName("message");

TextMessage message = new TextMessage();

//设置用户的openId

message.setTouser("oTMC0txGNUisZyU9lMpGu8K8TlsU");

message.setTextContent("测试");

task.setMessage(message);

task.send();

carp.destroy();

}

}

一、Task task = carp.getTaskRepertory().getTaskByName("message");

根据message关键字,得到须要发送的task

二、TextMessage message = new TextMessage();

构造一个文本消息类,根据开发者文档,填入touser和文本内容content

三、task.setMessage(message);

将须要发送的message填入到task中

四、task.send();

发送task到公众平台;

注意,task.send()方法是一个同步发送消息到公众平台的方法,若是须要异步发送消息,须要调用task.send(false);

消息发送成后,根据配置文件(<work>com.voa.weixin.work.CustomerMessageWork</work>),会回调CustomerMessageWork这个类,看一下CustomerMessageWork的内容

public class CustomerMessageWork extends Work {


@Override

public void toDo() throws WorkException {

System.out.println(this.weixinResult.getJson());

}


@Override

public void failedToDo() throws WorkException {

// TODO Auto-generated method stub


}


}

能够看到,CustomerMessageWork这个类没有对返回的信息作任何处理,仅仅打印出来了;

toDo()方法是消息发送成功的回调方法;

failedToDo()方法是消息发送失败后的回调方法

能够自定义个Work类(别忘了继承Work父类),就能够自定义保存文本消息了,也能够作任意的其余处理。


carp技术群:368193775

相关文章:

carp的介绍和配置

carp搭建公众平台(二)——得到全部客户信息和自定义任务

carp搭建公众平台(三)——上传下载多媒体文件

相关文章
相关标签/搜索