Im vorherigen Artikel wird darüber gesprochen, wie er auf das offizielle WeChat -Konto zugreifen kann. In diesem Artikel geht es um die grundlegendsten Funktionen des WeChat -offiziellen Kontos: den Empfang und die Antwort auf normale Nachrichten. Was sind gewöhnliche Nachrichten, die von den offiziellen WeChat -Konten definiert werden? Die in der WeChat -Entwicklerdokumentation empfangenen ordentlichen Nachrichten enthalten die folgenden Kategorien :
1. Textnachricht
2. Bildnachricht
3. Sprachnachricht
4. Videomobilie
5. kurze Videobotschaft
6. Geografische Standortnachricht
7. Link Nachricht (passive Antwortnachricht)
Regelmäßige Nachrichten, die passiv antworten, umfassen:
1. Antwort auf Textnachrichten
2. Antwort auf die Bildnachricht
3. Antwort auf Sprachnachrichten
4. Antworten Sie auf Videomeldungen
5. Antwort auf Musiknachrichten
6. Antwort auf Textnachrichten
Tatsächlich sind die beiden Aktionen des Empfangens von Nachrichten und passiven Antwortnachrichten untrennbar miteinander verbunden. Dies ist ein interaktives Szenario. Im Allgemeinen gibt das offizielle Konto entsprechende Antworten, indem die empfangenen Nachrichten analysiert werden. Natürlich können einige besondere Unternehmen nicht ausgeschlossen werden.
So empfangen Sie Nachrichten
Das XML -Format der Nachrichten, die in den 7 Nachrichten empfangen werden sollen, wird hier nicht aufgeführt. Bitte besuchen Sie das offizielle Dokument, um sie mit spezifischen Formatdefinitionen und Attributbeschreibungen anzuzeigen. Das Format ist sehr einfach. Zu den grundlegenden gemeinsamen Attributen gehören Tousername, Fromuername, CreateTime, MSGTYPE und MSGID, und jeder Typ hat seine eigenen speziellen Attribute.
Nachdem ich dies gesehen habe, verstehe ich tatsächlich, dass der Prozess des Empfangs von Nachrichten tatsächlich der Prozess des Erhaltens des vom Post angeforderten XML und der Analyse der XML ist. Der Eintrag für die Postanforderung ist weiterhin die Adresse für den Zugriff auf das zuvor erwähnte WeChat -offizielle Konto. Alle Anfragen für das gesamte offizielle Konto werden zu diesem Eintrag übergehen, es handelt sich jedoch um eine Get -Anfrage, wenn Sie zugreifen, und in anderen Fällen handelt es sich um eine Postanfrage. DOM4J wird verwendet, um XML zu verarbeiten. Der XML -Verarbeitungscode lautet wie folgt. Sie können die Parsexml -Methode in der Post -Methode des Servlet aufrufen:
public static map parsexml (httpServletRequest -Anforderung) löst Ausnahme aus {// Das Parsen -Ergebnis in HashMap MAP = new Hashmap (); // den Eingabestream aus dem Anforderungseingangsstream -Eingangsstream = Anforderungsstream abrufen. Verschachtelte Ausnahme:* Frühes Ende der Datei String RequestBody =* InputStream2string (InputStream); System.out.println (RequestBody);*/// Lesen Sie den Eingabestream Saxreader Reader = new SAXReader (); document document = reader.read (inputStream); // Holen Sie sich das XML -Root -Element -Element -Root -Element -Element -Element -Element -Element. ElementList) map.put (e.getName (), e.getText ()); // Ressourceneingabe inputStream.CLOSE (); InputStream = NULL; Return MAP;} private statische String -Eingabestream2Stream (InputStream) löst IOException {bytearrayoutStream aus. {baos.write (i);} return baos.toString ();} So antworten Sie passiv auf Nachrichten
Im Folgenden zeige ich die Nachricht, die eine Antwort basierend auf einer solchen Logik erstellt, die Textnachricht "Text" empfängt und auf die Textnachricht antwortet. Empfangen des "Bildes" und antworten auf die Bildnachricht; Empfangen der "Stimme" und antworten auf die Sprachnachricht; Empfangen des "Videos", antworten auf die Videobotschaft; Empfangen der "Musik", antworten auf die Musiknachricht; Empfangen Sie das "Bild" und antworten Sie auf die Bildnachricht.
Antwort auf Textnachrichten als Erklärung:
<xml> <tousername> <! [cdata [die Person, die die Nachricht sendet, d. H. Der Abonnent]]> </tousername> <fromusername> <! [CDATA [WeChat Official Account selbst]> </fromusername> <Createtime> Nachrichtenerstellung Zeit (Plastik Operation) </createTime> <msgType> <! [CDATA [Text]]> </msgType> <Content> <! [CDATA [Meldungsinhalt]]> </content> </xml>
Die ersten beiden Attribute können aus der empfangenen Nachricht erhalten werden, und das empfangene Nachrichtenformat lautet wie folgt:
<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>
Der Tousername im Empfangsnachrichtenformat ist der From -Unername, der auf die Nachricht antwortet, und der From -Uername im Empfangsnachrichtenformat ist der Tousername, der auf die Nachricht antwortet.
CreateTime ist der von der Nachricht gesendete Zeitstempel. MSGTYPE ist der Nachrichtentyp und der Text ist Text. Inhalt ist der Nachrichteninhalt.
Die Antwort auf jede Art von Nachricht besteht darin, den XML -Formatinhalt dieses Typs zu konstruieren. Die Formate sind ähnlich, aber die Musik-, Video-, Sprach- und Grafikformate sind etwas komplizierter als der XML -Inhalt, der durch Textnachrichten konstruiert wird. Weitere Informationen finden Sie in der offiziellen Dokumentation. Ich werde hier nicht auf Details eingehen, ich glaube, Sie werden es auf einen Blick verstehen.