WeChat 공개 계정 개발에 대한 답변은 귀하의 참조를위한 것입니다. 특정 내용은 다음과 같습니다
그래픽 및 문자 메시지의 주요 매개 변수에 대한 설명
공식 WeChat 메시지 인터페이스 가이드를 통해 아래 그림과 같이 그래픽 및 문자 메시지의 매개 변수를 볼 수 있습니다.
위 그림에서 우리는 다음을 배울 수 있습니다.
1. 그래픽 메시지 수는 10으로 제한됩니다. 즉, 그래픽 메시지에서 ArticleCount의 값 (그래픽 메시지 수는 10으로 제한됨).
2. 그래픽 및 문자 메시지의 경우 첫 번째 그래픽 및 텍스트의 그림이 큰 그림으로 표시되며 다른 그래픽 및 텍스트의 그림은 작은 그림으로 표시됩니다.
3. 첫 번째 사진의 권장 크기는 640*320이고 권장 사진은 다른 사진의 경우 80*80입니다.
다음은 구현으로 시작합니다.
요청 메시지의 기본 클래스 :
import com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable;/** * @author inchlifc */public class basessage emplements serializable {@xstreamalias ( "tousername") @xstreamcdata private string tousername; @xstreamalias ( "fromusername") @xstreamcdata private string fromusername; @xstreamalias ( "CreateTime") Private Long CreateTime; @xstreamalias ( "msgtype") @xstreamcdata private string msgtype; 공공 Basemessage () {super (); } public basemessage (문자열에서 문자열, 문자열 tousername) {super (); fromusername = fromusername; tousername = tousername; CreateTime = System.CurrentTimeMillis (); } public String getTouserName () {return tousername; } public void enthousername (String tousername) {tousername = tousername; } public String getFromUserName () {return fromUserName; } public void setfromusername (string fromusername) {fromusername = fromusername; } public long getCreateTime () {return createTime; } public void setCreateTime (Long CreateTime) {CreateTime = CreateTime; } public String getMsgtype () {return msgtype; } public void setmsgtype (String msgtype) {msgtype = msgtype; }}그래픽 및 문자 메시지 카테고리 :
import com.thoughtworks.xstream.annotations.xstreamalias; import java.util.list; @xstreamalias ( "xml") public class articleSmessage는 BaseMessage {@xstreamalias ( "articlecount") 개인 int verticlecount; @xstreamalias ( "Articles") 개인 목록 <articlesItem> 기사; public int getarticlecount () {return articlecount; } public void setArticleCount (int articleCount) {articleCount = articleCount; } public list <articlesItem> getArticles () {return articles; } public void setarticles (list <articlesItem> articles) {articles = articles; }}텍스트 및 문자 메시지의 기사 수업 :
import com.thoughtworks.xstream.annotations.xstreamalias; import java.util.list; @xstreamalias ( "articles") 공개 클래스 기사 {private list <articleSitem> articles;}텍스트 및 문자 메시지의 ArticlesItem 클래스 :
import com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable ( "항목") public class articlesItem은 시리얼이즈 가능 {@xstreamalias ( "title") @xstreamcdata private String title; @xstreamalias ( "description") @xstreamcdata 개인 문자열 설명; @xstreamalias ( "picurl") @xstreamcdata private String picurl; @xstreamalias ( "url") @xstreamcdata private String URL; 공개 문자열 getTitle () {return title; } public void settitle (문자열 제목) {title = title; } public String getDescription () {return description; } public void setDescription (문자열 설명) {설명 = 설명; } public String getPicurl () {return picurl; } public void setpicurl (String Picurl) {picurl = picurl; } public String getUrl () {return url; } public void seturl (String URL) {url = url; }}서비스 계층 구현 방법 :
포장 방법
/ ** * 블로그 문자 메시지 가져 오기 * * @param customName * @param servername * @param createTime * @return */ private articlesMessage getBlogMessage (String CustomName, String ServerName, Long CreateTime) {articleSmessage outputmsg = new wortmessage (); outputmsg.setfromusername (servername); outputmsg.settousername (custermname); outputmsg.setcreateTime (CreateTime); outputmsg.setmsgtype (msgtype.news.getValue ()); List <ArticlesItem> articles = new ArrayList <> (); articlesItem item1 = new ArticlesItem (); item1. 세트 타이틀 ( "저녁 시원한 브리즈 블로그 입력 확인"); item1.setpicurl (wechatconstant.base_server + "resources/images/wechat/a.png"); item1.seturl ( "https://my.oschina.net/inchlifc/blog"); articles.add (item1); outputmsg.setarticles (기사); outputmsg.setarticlecount (articles.size ()); 리턴 outputmsg; }숫자 1을 입력하면 문자 메시지 푸시로 돌아갑니다.
// 수신 된 메시지를 처리하여 servletinputStream in = request.getInputStream (); // 포스트 스트림을 xstream 객체로 변환 xstream xs = new xstream (); xs = serializexmlutil.createxstream (); xstream.setupdefaultsecurity (xs); xs.alowTypes (new class [] {textMessage.class, inputMessage.class, articlesMessage.class}); xs.processannotations (inputmessage.class); xs.processannotations (articlesmessage.class); xs.processannotations (imageMessage.class); // 지정된 노드 아래의 XML 노드 데이터를 객체 xs.alias ( "xml", inputmessage.class)에 매핑합니다. // 스트림을 문자열로 변환 stringbuilder xmlmsg = new StringBuilder (); 바이트 [] B = 새로운 바이트 [4096]; for (int n; (n = in.read (b))! = -1;) {xmlmsg.append (new String (b, 0, n, "utf -8")); } logger.info ( "메시지 수신 ====" + xmlmsg.toString ()); // XML 컨텐츠를 inputMessage 객체로 변환 inputMessage inputmsg = (inputMessage) xs.fromxml (xmlmsg.tostring ()); // Server String ServerName = inputmsg.getTounserName (); // 클라이언트 string customName = inputmsg.getFromUserName (); // time long createTime = inputmsg.getCreateTime (); // 반환 시간 긴 반환 시간 = calendar.getInstance (). getTimeInmillis () / 1000; // 텍스트 내용 문자열 content = inputmsg.getContent (); // 메시지 유형을 얻는다 문자열 msgtype = inputmsg.getmsgtype (); if (msgtype.text.getValue (). equals (msgtype)) {// 입력 1 푸시 블로그 정보 if ( "1".Elequals (content)) {logger.info ( "text 1 수신"); articleSmessage outputmsg = getBlogMessage (custerMname, serverName, returnTime); logger.info ( "블로그로 돌아온 문자 메시지 ===" + xs.toxml (outputmsg)); response.getWriter (). 쓰기 (xs.toxml (outputmsg)); }}실행 결과 :
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.