Heim  >  Artikel  >  WeChat-Applet  >  Detaillierte Einführung in die Verwendung von Java zur Entwicklung öffentlicher WeChat-Konten zum Empfangen und passiven Beantworten normaler Nachrichten

Detaillierte Einführung in die Verwendung von Java zur Entwicklung öffentlicher WeChat-Konten zum Empfangen und passiven Beantworten normaler Nachrichten

高洛峰
高洛峰Original
2017-03-15 17:56:342289Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur Java-Entwicklung öffentlicher WeChat-Konten vorgestellt, um normale Nachrichten zu empfangen und passiv darauf zu antworten.

Nach Abschluss des vorherigen Artikels erfahren Sie, wie Sie auf die Öffentlichkeit von WeChat zugreifen können In diesem Artikel geht es um die grundlegendste Funktion des offiziellen WeChat-Kontos: Empfangen und Beantworten normaler Nachrichten. Apropos gewöhnliche Nachrichten: Was sind gewöhnliche Nachrichten, die von offiziellen WeChat-Konten definiert werden? Die in der WeChat-Entwicklerdokumentation erwähnten gewöhnlichen Nachrichten umfassen die folgenden Kategorien

1. Textnachricht

2.
BildNachricht3. Sprachnachricht
4.
VideoNachricht5. Kleine Videonachricht
7. Link-Nachricht (passive Antwortnachricht)


Normale Nachrichten mit passiver Antwort umfassen:


1 Antwort-SMS

2 . Auf Bildnachricht antworten

3. Auf Sprachnachricht antworten
4. Auf Videonachricht antworten
5. Auf Musiknachricht antworten
6. Auf Grafiknachricht antworten


Tatsächlich sind die beiden Aktionen des

Empfangens von Nachrichten

und des passiven Beantwortens von Nachrichten untrennbar miteinander verbunden. Im Allgemeinen gibt das öffentliche Konto entsprechende Antworten, indem es die empfangenen Nachrichten analysiert. Natürlich können einige Sondergeschäfte nicht ausgeschlossen werden.

So empfangen Sie Nachrichten


Die

xml

-Formate der 7 zu empfangenden Nachrichten sind hier bitte nicht aufgeführt Suchen Sie in der offiziellen Dokumentation nach spezifischen Formatdefinitionen und Attributbeschreibungen . Das Format ist sehr einfach. Zu den grundlegenden allgemeinen Attributen gehören ToUserName, FromUserName, CreateTime, MsgType und MsgId, und jeder Typ hat seine eigenen speziellen Attribute.
Nachdem ich das gesehen habe, ist es tatsächlich sehr klar, dass der Prozess des Empfangens der Nachricht eigentlich der Prozess ist, die XML-Datei der

Post-Anfrage

abzurufen und dann die XML-Datei zu analysieren. Der Eingang für die Post-Anfrage ist immer noch die Adresse, die vom zuvor erwähnten offiziellen WeChat-Konto verwendet wird. Alle Anfragen für das gesamte offizielle Konto werden über diesen Eingang geleitet, aber beim Zugriff handelt es sich um eine Get-Anfrage und in anderen Fälle, in denen es sich um eine Post-Anfrage handelt. Dom4j wird zum Verarbeiten von XML verwendet. Rufen Sie einfach die parseXml-Methode in der Post-Methode von Servlet auf:


public static Map parseXml(HttpServletRequest request) throws Exception {
// 将解析结果存储在HashMap中
Map map = new HashMap();
// 从request中取得输入流
InputStream inputStream = request.getInputStream();
/*
* 读取request的body内容 此方法会导致流读取问题 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();
// 得到根元素的所有子节点
List<Element> elementList = root.elements();
// 遍历所有子节点
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();
}
So antworten Sie passiv auf eine Nachricht


Im Folgenden werde ich den Aufbau einer Antwortnachricht basierend auf einer solchen Logik demonstrieren. Nachdem Sie die Textnachricht „Text“ erhalten haben, antworten Sie auf die Textnachricht; nach Erhalt des „Bildes“ auf die Bildnachricht antworten, wenn „Video“ empfangen wird, auf die Videonachricht antworten; Musiknachricht; wenn „Bild und Text“ empfangen werden, auf Bild- und Textnachricht antworten.


Nehmen Sie als Beispiel eine Antwort-SMS:


Die ersten beiden Attribute können aus der empfangenen Nachricht, der empfangenen Nachricht, abgerufen werden Format wie folgt:
<xml>
<ToUserName><![CDATA[发消息的人,即订阅者]]></ToUserName>
<FromUserName><![CDATA[微信公众号本身]]></FromUserName>
<CreateTime>消息创建时间(整形)</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[消息内容]]></Content>
</xml>



Der ToUserName im Empfangsnachrichtenformat ist der FromUserName der Antwortnachricht, und der FromUserName im Empfangsnachrichtenformat ist der ToUserName der Antwortnachricht.
<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>


CreateTime ist der

Zeitstempel

der gesendeten Nachricht. MsgType ist der Nachrichtentyp und der Text ist Text. Inhalt ist der Nachrichteninhalt.
Die Antwort auf jede Art von Nachricht besteht darin, diese Art von Inhalten im XML-Format zu erstellen. Die Formate sind ähnlich, außer dass sich die Musik-, Video-, Sprach- und Grafikformate geringfügig vom XML-Inhalt unterscheiden Durch Textnachrichten aufgebaut. Weitere Informationen finden Sie in der offiziellen Dokumentation. Ich werde hier nicht auf Details eingehen, ich glaube, Sie werden es auf einen Blick verstehen.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung von Java zur Entwicklung öffentlicher WeChat-Konten zum Empfangen und passiven Beantworten normaler Nachrichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn