В предыдущей статье рассказывается о том, как получить доступ к официальной учетной записи WeChat. В этой статье рассказывается о самых основных функциях официальной учетной записи WeChat: прием и ответа на обычные сообщения. Говоря об обычных сообщениях, какие обычные сообщения определяются официальными учетными записями WeChat? Полученные обычные сообщения, упомянутые в документации по разработке WeChat, включают в себя следующие категории :
1. Текстовое сообщение
2. Picture Message
3. Голосовое сообщение
4. Видеообращение
5. Краткое видео сообщений
6. Сообщение о географическом расположении
7. Сообщение ссылки (пассивное ответное сообщение)
Регулярные сообщения, которые пассивно отвечают, включают:
1. Ответьте на текстовые сообщения
2. Ответьте на сообщение с картинкой
3. Ответьте на голосовые сообщения
4. Ответьте на видео сообщения
5. Ответьте на музыкальные сообщения
6. Ответьте на текстовые сообщения
На самом деле, два действия получения сообщений и пассивных ответных сообщений неразделимы. Это интерактивный сценарий. Вообще говоря, официальная учетная запись даст соответствующие ответы, анализируя полученные сообщения. Конечно, нельзя исключать некоторые специальные предприятия.
Как получать сообщения
Формат XML сообщений, которые будут получены в 7 сообщениях, не будет указан здесь. Пожалуйста, перейдите в официальный документ, чтобы просмотреть их, с конкретными определениями формата и описаниями атрибутов. Формат очень прост. Основные общие атрибуты включают Tousername, From Ousername, CreateTime, MSGTYPE и MSGID, и каждый тип имеет свои специальные атрибуты.
Увидев это, я фактически понимаю, что процесс получения сообщений на самом деле является процессом получения XML, запрашиваемого Post, а затем анализа XML. Запись для запроса POST по -прежнему остается адрес для доступа к официальной учетной записи WeChat, упомянутой ранее. Все запросы на всю официальную учетную запись пойдут на эту запись, но это запрос GET при доступе, а в других случаях это почтовый запрос. Dom4j используется для обработки XML. Код обработки XML выглядит следующим образом. Вы можете вызвать метод Parsexml в методе Post Сервлета:
Общественная статическая карта parsexml (запрос httpservletrequest) бросает исключение {// хранить проповедонный результат в hashmap map = new hashmap (); // Получить поток ввода из запроса inputstream inputstream = request.getInputStream ();/** Прочтите содержание тела запроса. Этот метод приведет к чтению. Вложенное исключение:* преждевременный конец строки файла requestBody =* inputStream2String (inputStream); System.out.println (requestBody);*/// Прочитайте входной поток SaxReader Reader = new SaxReader (); Document Document = Reader.read (InputStream); // Получить элемент элемента xml корневой элемент = документ. elementList) map.put (e.getName (), e.getText ()); // Выпуск ресурса inpourceStream.close (); inputStream = null; return Map;} частная статическая строка inputStream2String (inputStream IS) Throws IoException {byTearRayOutputStream BAOS = new ByTearRayOutputStream () int i = hice -1; -1) {baos.write (i);} return baos.tostring ();} Как пассивно ответить на сообщения
Ниже я демонстрирую сообщение, построенное ответом на основе такой логики, получая текстовое сообщение «Текст» и отвечая на текстовое сообщение; получение «изображения» и ответа на сообщение с изображением; получение «голоса» и ответа на голосовое сообщение; Получение «видео», отвечая на видеосообщение; получение «музыки», отвечая на музыкальное сообщение; получение «картинки» и ответа на сообщение с изображением.
Ответьте на текстовые сообщения как объяснение:
<mml> <tousername> <! [CDATA [Человек, отправляющий сообщение, то есть подписчик]]> </tousername> <facusername> <! [CDATA [сама официальная учетная запись WeChat]]> </fromUsername> <! хирургия) </createtime> <sgtype> <! [CDATA [Text]]> </msgtype> <stonte> <!
Первые два атрибута могут быть получены из полученного сообщения, а формат полученного сообщения заключается в следующем:
<xml> <tousername> <! [Cdata [touser]]> </tousername> <facusername> <! [Cdata [fromuser]]> </fromusername> <CreateTime> 1348831860 </createtime> <sgtype> <! Текст]]> </content> <ssgid> 1234567890123456 </msgid> </xml>
В формате приемного сообщения Tousername - это имя, которое отвечает на сообщение, а FromSername в формате приемного сообщения - это Tousername, которое отвечает на сообщение.
CreateTime - это метка времени, отправленная сообщением. MSGTYPE - это тип сообщения, а текст - текст. Контент - это контент сообщения.
Ответ на каждый тип сообщения состоит в том, чтобы построить содержание формата XML этого типа. Форматы похожи, но музыка, видео, голос и графические форматы немного сложнее, чем контент XML, построенный текстовыми сообщениями. Для получения подробной информации, пожалуйста, обратитесь к официальной документации. Я не буду вдаваться в подробности здесь, я считаю, что вы поймете это с первого взгляда.