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搭建公衆平臺(三)——上傳下載多媒體文件

相關文章
相關標籤/搜索