WECHATパブリックアカウント開発に対する返信は、参照のためです。特定のコンテンツは次のとおりです
グラフィックメッセージとテキストメッセージの主なパラメーターの説明
以下の図に示すように、公式のWeChatメッセージインターフェイスガイドを通じて、グラフィックメッセージとテキストメッセージのパラメーターを確認できます。
上記の写真から、私たちは学ぶことができます:
1.グラフィックメッセージの数は10に制限されています。つまり、グラフィックメッセージのarticlecountの値(グラフィックメッセージの数は10に制限されます)
2。グラフィックメッセージとテキストメッセージの場合、最初のグラフィックとテキストの写真は大きな写真として表示され、他のグラフィックとテキストの写真は小さな画像として表示されます。
3.最初の写真の推奨サイズは640*320で、推奨される写真は他の写真で80*80です
以下は実装から始まります。
リクエストメッセージの基本クラス:
com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable;/** * @author inchlifc */public class basemessage実装{@xstreamalias( "tousername")@xstreamcdata private string touname; @xstreamalias( "fromusername")@xstreamcdataプライベート文字列fromusername; @xStreamAlias( "CreateTime")Private Long CreateTime; @xstreamalias( "msgtype")@xstreamcdata private string msgtype; public basemessage(){super(); } public BaseMessage(String FromUsername、String Tousername){super(); fromusername = fromusername; tousername = tousername; createTime = system.currenttimemillis(); } public string getTousername(){return tousername; } public void setoudername(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; }}グラフィックとテキストメッセージのカテゴリ:
com.thoughtworks.xstream.annotations.xstreamalias; Import java.util.list; @xstreamalias( "xml")public class recutionmessageはbasemessage {@xstreamalias( "articlecount")private int articlecountを拡張します。 @xStreamAlias( "記事")プライベートリスト<ActionSitem>記事; public int getArticleCount(){return articlecount; } public void setarticlecount(int articlecount){articlecount = articlecount; } public list <portionItem> getArticles(){return article; } public void setarticles(list <porthricsitem> article){article = article; }}テキストとテキストメッセージの記事クラス:
Import com.thoughtworks.xstream.annotations.xstreamalias; Import java.util.list; @xstreamalias( "article")public class article {private list <porthsitem>記事;}テキストとテキストメッセージの記事クラス:
com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable; @xstreamalias( "item")public class articleitem explentice serializable {@xstreamalias( "title")@xstreamcdata private string title; @XStreamAlias( "説明")@xstreamcdata private string description; @xstreamalias( "picurl")@xstreamcdata private string picurl; @xstreamalias( "url")@xstreamcdata private string url; public string getTitle(){return title; } public void settitle(string title){title = title; } public string getDescription(){return description; } public void setDescription(string description){説明=説明; } 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 message getBlogMessage(String CustomName、String Servername、Long CreateTime){articlemessage outputmsg = new articresmessage(); outputmsg.setfromUsername(servername); outputmsg.settousername(custermname); outputmsg.setcreatetime(createTime); outputmsg.setmsgtype(msgtype.news.getValue()); List <ChortisItem> article = new ArrayList <>(); articleItem item1 = new articleItem(); item1.settitle(「夕方のクールブリーズブログに入るためにチェック」); item1.setpicurl(wechatconstant.base_server + "resources/images/wechat/a.png"); item1.seturl( "https://my.oschina.net/inchlifc/blog"); article.add(item1); outputmsg.setarticles(記事); outputmsg.setarticleCount(article.size()); return outputmsg; }番号1を入力すると、テキストメッセージプッシュに戻ります
//受信したメッセージservletinputStream in = request.getInputStream(); //ポストストリームをXStreamオブジェクトに変換しますXSTREAM XS = new XStream(); xs = serializexmlutil.createxstream(); XStream.SetUpDefaultSecurity(XS); Xs.AllowTypes(new class [] {textmessage.class、inputmessage.class、articlemessage.class}); Xs.ProcessAnnotations(inputmessage.class); Xs.ProcessAnnotations(articlemessage.class); Xs.ProcessAnnotations(ImageMessage.Class); //指定されたノードの下のXMLノードデータをオブジェクトxs.Alias( "xml"、inputmessage.class)にマップします。 //ストリームを文字列stringbuilder xmlmsg = new StringBuilder()に変換します。 byte [] b = new byte [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()); //サーバー文字列servername = inputmsg.getTousername(); //クライアント文字列customname = inputmsg.getFromUsername(); // time long createTime = inputmsg.getCreatetime(); // return time long returntime = calendar.getInstance()。getTimeInmillis() / 1000; //テキストコンテンツ文字列content = inputmsg.getContent(); //メッセージタイプを取得しますstring string msgtype = inputmsg.getmsgtype(); if(msgtype.text.getValue()。equals(msgtype)){//入力1プッシュブログ情報if( "1" .equals(content)){ogger.info( "text 1を受信した"); recutionmessage outputmsg = getBlogMessage(custermname、servername、returntime); logger.info( "ブログに戻るテキストメッセージ===" + xs.toxml(outputmsg)); Response.getWriter()。write(xs.toxml(outputmsg)); }}実行結果:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。