이전 기사는 WeChat 공식 계정에 액세스하는 방법에 대해 이야기합니다. 이 기사에서는 WeChat 공식 계정의 가장 기본적인 기능, 즉 수신 및 일반 메시지에 대한 답변에 대해 이야기합니다. 일반 메시지에 대해 말하면 WeChat 공식 계정에서 정의한 일반 메시지는 무엇입니까? WeChat 개발자 문서에 언급 된 일반 메시지에는 다음 범주가 포함됩니다 .
1. 문자 메시지
2. 사진 메시지
3. 음성 메시지
4. 비디오 메시지
5. 짧은 비디오 메시지
6. 지리적 위치 메시지
7. 링크 메시지 (수동 응답 메시지)
수동적으로 답장하는 일반 메시지는 다음과 같습니다.
1. 문자 메시지에 답장하십시오
2. 사진 메시지에 회신하십시오
3. 음성 메시지에 회신하십시오
4. 비디오 메시지에 회신하십시오
5. 음악 메시지에 답장하십시오
6. 문자 메시지에 답장하십시오
실제로 메시지 수신과 수동적 응답 메시지의 두 가지 작업은 분리 할 수 없습니다. 이것은 대화식 시나리오입니다. 일반적으로 공식 계정은 수신 된 메시지를 분석하여 해당 답변을 제공합니다. 물론 일부 특수 사업은 배제 할 수 없습니다.
메시지를받는 방법
7 개의 메시지에서 수신 할 메시지의 XML 형식은 여기에 나열되지 않습니다. 특정 형식의 정의 및 속성 설명과 함께 공식 문서로 이동하여이를보십시오. 형식은 매우 간단합니다. 기본적인 일반적인 속성에는 Tousername, Fromusername, CreateTime, Msgtype 및 Msgid가 포함되며 각 유형에는 고유 한 특수 속성이 있습니다.
이것을 본 후, 나는 메시지를 수신하는 프로세스가 실제로 게시물에서 요청한 XML을 얻은 다음 XML을 분석하는 과정임을 이해합니다. 후 요청에 대한 항목은 여전히 앞서 언급 한 WeChat 공식 계정에 대한 액세스를위한 주소입니다. 전체 공식 계정에 대한 모든 요청은이 항목으로 이동하지만 액세스 할 때 GET 요청이며 다른 경우에는 사후 요청입니다. DOM4J는 XML을 처리하는 데 사용됩니다. XML 처리 코드는 다음과 같습니다. 서블릿의 게시물에서 parsexml 메소드를 호출 할 수 있습니다.
public static map parsexml (httpservletrequest request)은 예외를 던집니다. {// 구문 분석 된 결과를 해시 맵 맵 = new Hashmap ()에 저장합니다. // 요청에서 입력 스트림을 얻습니다. inputstream inputstream = request.getInputStream (/** 요청이 읽기가 조기 파일의 끝을 읽습니다. 중첩 예외 :* 파일 문자열의 조기 끝 요청 bide =* inputStream2string (inputStream); system.out.println (requeste);*/// 입력 스트림 읽기 saxreader reader = new saxReader (); docum elementList) map.put (e.getName ()); // resource inputStream.close (); inputStream = null; return map;} private static string inputStream2string (inputStream is)은 ioException {bytearRayoutPutStream baos = 새로운 BYTearRayoutStream (); int i = (); is.read ())! = -1) {baos.write (i);} return baos.toString ();} 메시지에 수동적으로 응답하는 방법
아래에서는 그러한 논리를 기반으로 회신을 구성하고 문자 메시지 "텍스트"를 받고 문자 메시지에 응답하는 메시지를 보여줍니다. "그림"을 받고 사진 메시지에 응답; "음성"을 받고 음성 메시지에 응답; "비디오"를 받고 비디오 메시지에 응답; "음악"을 받고 음악 메시지에 답장; "그림"을 받고 사진 메시지에 응답합니다.
설명으로 문자 메시지에 회신하십시오.
<xml> <tousername> <! 수술) </createTime> <sgtype> <! [cdata [text]]> </msgtype> <content> <!
처음 두 속성은 수신 된 메시지에서 얻을 수 있으며 수신 된 메시지 형식은 다음과 같습니다.
<xml> <tousername> <! [cdata [touser]]> </tousername> <fromusername> <! 텍스트]]> </content> <sgid> 1234567890123456 </msgid> </xml>
수신 메시지 형식의 tousername은 메시지에 회신하는 FromUsername이며, 수신 메시지 형식의 Fromusername은 메시지에 회신하는 tousername입니다.
CreateTime은 메시지에서 보낸 타임 스탬프입니다. msgtype는 메시지 유형이고 텍스트는 텍스트입니다. 내용은 메시지 내용입니다.
각 유형의 메시지에 대한 회신은이 유형의 XML 형식 내용을 구성하는 것입니다. 형식은 비슷하지만 음악, 비디오, 음성 및 그래픽 형식은 문자 메시지로 구성된 XML 컨텐츠보다 약간 더 복잡합니다. 자세한 내용은 공식 문서를 참조하십시오. 나는 여기서 세부 사항으로 들어 가지 않을 것입니다. 나는 당신이 그것을 한눈에 이해할 것이라고 믿습니다.