亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 微信小程式 微信開發(fā) 使用Java開發(fā)微信公眾號接收和被動回覆普通訊息詳細介紹

使用Java開發(fā)微信公眾號接收和被動回覆普通訊息詳細介紹

Mar 15, 2017 pm 05:56 PM

這篇文章主要介紹了Java開發(fā)微信公眾號接收和被動回復普通訊息的相關資料,需要的朋友可以參考下

上篇說完瞭如何接入微信公眾號,本文說一下微信公眾號的最基本功能:普通訊息的接收與回覆。說到普通訊息,那麼什麼是微信公眾號所定義的普通訊息呢,微信開發(fā)者文件中提到的接收的普通訊息包括如下幾類

1.文字訊息
2.圖片訊息
3.語音訊息
4.影片訊息
5.小視訊訊息
6.地理位置訊息
7.連結(jié)訊息(被動回應的訊息)

被動回覆的普通訊息包括:

1.回復文字訊息
2.回覆圖片訊息
3.回覆語音訊息
4.回覆視訊訊息
5.回覆音樂訊息
6.回覆圖文訊息

#其實接收訊息和被動回覆訊息這兩個動作是不分家的,這本來就是一個互動場景,一般情況就是公眾號透過分析接收到的訊息,會給予對應的回復。當然也不能排除一些特殊業(yè)務了。

如何接收訊息

要接收的這7中訊息的xml格式這裡就不列出了,請到官方文件查看,有具體的格式定義和屬性說明。格式很簡單,基本共有屬性包括ToUserName、FromUserName、CreateTime、MsgType、MsgId,且每種類型都有自己特殊的屬性。

看到這裡,其實就很明白了,接收訊息的過程其實就是取得post請求的這個xml,然後對這個xml進行分析的過程。 post請求的入口還是之前提到的微信公眾號接入的那個地址,整個公眾號的所有請求都會走這個入口,只是接入時是get請求,其它情況下是post請求。處理xml這裡用了dom4j,xml處理程式碼如下,在servlet的post方法中呼叫parseXml方法即可:


public static Map parseXml(HttpServletRequest request) throws Exception {
// 將解析結(jié)果存儲在HashMap中
Map map = new HashMap();
// 從request中取得輸入流
InputStream inputStream = request.getInputStream();
/*
* 讀取request的body內(nèi)容 此方法會導致流讀取問題 Premature end of file. Nested exception:
* Premature end of file String requestBody =
* inputStream2String(inputStream); System.out.println(requestBody);
*/
// 讀取輸入流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// 得到根元素的所有子節(jié)點
List<Element> elementList = root.elements();
// 遍歷所有子節(jié)點
for (Element e : elementList)
map.put(e.getName(), e.getText());
// 釋放資源
inputStream.close();
inputStream = null;
return map;
}
private static String inputStream2String(InputStream is) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = -1;
while ((i = is.read()) != -1) {
baos.write(i);
}
return baos.toString();
}

如何被動回覆訊息

下面我基於這樣一個邏輯來示範建構(gòu)回覆的訊息,接收到文字訊息"文字",回覆文字訊息;接收到「圖片」,回覆圖片訊息;接收到“語音”,回覆語音訊息;接收“視訊”,回覆視訊訊息;接收“音樂”,回覆音樂訊息;接收“圖文”,回覆圖文訊息。

以回覆文字訊息作為說明:


<xml>
<ToUserName><![CDATA[發(fā)消息的人,即訂閱者]]></ToUserName>
<FromUserName><![CDATA[微信公眾號本身]]></FromUserName>
<CreateTime>消息創(chuàng)建時間(整形)</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[消息內(nèi)容]]></Content>
</xml>

前兩個屬性可以從接收的訊息中獲取,接收的訊息格式如下:


<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName> 
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a text]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>

其中接收訊息格式中的ToUserName就是回覆訊息的FromUserName,接收訊息格式中的FromUserName就是回覆訊息的ToU??serName。

CreateTime為訊息發(fā)送的時間戳。 MsgType為訊息類型,文字為text。 Content為訊息內(nèi)容。

具體每一種類型訊息的回復,就是建構(gòu)此種類型的xml格式內(nèi)容,格式大同小異,只是音樂、視訊、語音、圖文格式相對於文字訊息構(gòu)造的xml內(nèi)容稍微複雜一點。具體可參考官方文件。這裡不做贅述,相信各位一看就明白。

以上是使用Java開發(fā)微信公眾號接收和被動回覆普通訊息詳細介紹的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72