java实现微信图文消息的发送

上面已经实现了消息的接收和发送,下面开始整个图文消息。这个才是大头吧,毕竟公众号还是得靠点图才能留住观众。hey~左边的观众。hey~右边的观众。可惜菜鸟的博文没有观众。还是给大家贴下柳峰老师的博文吧,毕竟又是参照他的做的。博文连接贴到最下面了。哈哈,想打我吗?!

  其实,看完柳峰老师的博客,应该就感觉到很简单了吧,哈哈,又想打我是吗?!

  首先先看下微信开发文档中图文消息中必备的属性都有啥。

参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType news
ArticleCount 图文消息个数,限制为10条以内
Articles 多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
Url 点击图文消息跳转链接

 

 

 

 

  

 

 

 

 

可以看到,比起本文消息,增加的属性有:Aritcles、AticleCount、Title、Description、PicUrl、Url。

 

<xml>

<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml> 

  根据以上,我们可以建立与图文消息有关的实体类。NewsMessage.java 和 Article.java。

  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

package org.liufeng.course.message.resp;

 

import java.util.List;

 

/**

 *
文本消息

 *

 *
@author liufeng

 *
@date 2013-09-11

 */

public class NewsMessage extends BaseMessage
{

    //
图文消息个数,限制为10条以内

    private int ArticleCount;

    //
多条图文消息信息,默认第一个item为大图

    private List<Article>
Articles;

 

    public int getArticleCount()
{

        return ArticleCount;

    }

 

    public void setArticleCount(int articleCount)
{

        ArticleCount
= articleCount;

    }

 

    public List<Article>
getArticles() {

        return Articles;

    }

 

    public void setArticles(List<Article>
articles) {

        Articles
= articles;

    }

}

  


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

package org.liufeng.course.message.resp;

 

/**

 *
图文model

 *

 *
@author liufeng

 *
@date 2013-09-11

 */

public class Article
{

    //
图文消息名称

    private String
Title;

    //
图文消息描述

    private String
Description;

    //
图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80

    private String
PicUrl;

    //
点击图文消息跳转链接

    private String
Url;

 

    public String
getTitle() {

        return Title;

    }

 

    public void setTitle(String
title) {

        Title
= title;

    }

 

    public String
getDescription() {

        return null ==
Description ? 
"" :
Description;

    }

 

    public void setDescription(String
description) {

        Description
= description;

    }

 

    public String
getPicUrl() {

        return null ==
PicUrl ? 
"" :
PicUrl;

    }

 

    public void setPicUrl(String
picUrl) {

        PicUrl
= picUrl;

    }

 

    public String
getUrl() {

        return null ==
Url ? 
"" :
Url;

    }

 

    public void setUrl(String
url) {

        Url
= url;

    }

}

  有了上述实体类,可以在上一节的coreService中继续添加回复图文消息的代码,我写的如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

//
单图文消息

                if ("1".equals(content))
{

 

                    //
创建图文消息(回复用)

                    NewsMessage
newsMessage = 
new NewsMessage();

                    newsMessage.setToUserName(fromUserName);

                    newsMessage.setFromUserName(toUserName);

                    newsMessage.setCreateTime(new Date().getTime());

                    newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);

 

                    List<Article>
articleList = 
new ArrayList<Article>();

 

                    Article
article = 
new Article();

                    article.setTitle("haojiahong的博客");

                    article.setDescription("我不是高手,我不会武功。"+emoji(0x1F61D)); 

                    article.setPicUrl("http://pic.cnblogs.com/avatar/466668/20150530175722.png");

                    article.setUrl("http://www.cnblogs.com/haojiahong");

                    articleList.add(article);

                    //
设置图文消息个数

                    newsMessage.setArticleCount(articleList.size());

                    //
设置图文消息包含的图文集合

                    newsMessage.setArticles(articleList);

                    //
将图文消息对象转换成xml字符串

                    respMessage
= MessageUtil.messageToXml(newsMessage);

                }

            }

  当微信用户端输入“1”的时候,会回复一条图文消息。如下图所示:

  此图是是使用微信在线调试器得到的结果,其中图片和符号表情没有显示出来,不过在手机上测试时可以正常显示,所以可以大可放心哟~

  

 

  加一点题外话:

  这是菜单列,一开始最后提示回复“?”的时候给重新显示此菜单。可以?有中文和英文两种形式,手机默认的是中文,而写程序的时候习惯上用英文,所以,这种情况最好还是能避免就避免了。

  代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

/**

     *
主菜单

     *
@return

     */

    public static String
getMainMenu() { 

        StringBuffer
buffer = 
new StringBuffer(); 

        buffer.append("您好,我是(●—●),请回复数字选择服务:").append("\n\n"); 

        buffer.append("1 
我的博客"
).append("\n"); 

        buffer.append("2 
公交查询"
).append("\n"); 

        buffer.append("3 
周边搜索"
).append("\n"); 

        buffer.append("4 
歌曲点播"
).append("\n"); 

        buffer.append("5 
经典游戏"
).append("\n"); 

        buffer.append("6 
美女电台"
).append("\n"); 

        buffer.append("7 
人脸识别"
).append("\n"); 

        buffer.append("8 
聊天唠嗑"
).append("\n\n"); 

        buffer.append("回复“0”显示此帮助菜单"); 

        return buffer.toString(); 

    

    

  

  嘿嘿,这里有柳峰老师的博客,很经典哟,别忘记点了呀,哈哈哈!

  柳峰老师图文消息攻略博客地址:http://blog.csdn.net/lyq8479/article/details/9393195

http://www.cnblogs.com/txw1958/p/weixin-97-news.html

时间: 2025-01-30 04:31:59

java实现微信图文消息的发送的相关文章

教你微信图文消息快速添加视频的方法

最近国防部发布征兵宣传片:军营版<小苹果>的视频很火,好东西不能独享,决定让公众号粉丝也happy一下,怎样在微信图文消息快速添加视频呢?瞧下xmyanke摸索的方法吧.[微信公众平台支持接收和发送微信小视频] 首先,到腾讯视频搜索一下相关的video,把那个视频播放地址复制下来,当时是那么想的:微信和微视是同家,应该可以兼容.然后打开微信图文消息编辑框,点击插入视频按钮,把刚刚那个url黏贴进去. 添加一些文字说明,保存,预览 怎么样?这种方法添加微信图文消息视频是不是很快呢?不用在后台上传

给微信图文消息添加漂亮的分割符吧

一篇好的微信图文消息,除了内容吸引人外,还要有适当的配图和漂亮的排版 内容,是你展现个人文笔才华的时候了:配图,那是体现你的想象力和创造力:排版,为你的图文消息锦上添花. 如果一篇文章写得很不错,但却用简单的罗列,你的看官就会感觉很普通,甚至没有想看的欲望,那就非常可惜了.if加上一些分隔符,适当配上亮丽的颜色,那就perfect了 图片分隔符                                           文字加颜色分隔符,看实例吧 第一种 添加底色.设置字体颜色,这是青龙

给微信图文消息添加修饰方框更简洁大方

我们在编辑微信公众号的时候,如果篇幅比较长,或者要点比较多,可以用方框分几个小版块,用户浏览更明了,排版美观许多,也不会给人一种长篇大论的感觉,一眼瞄过去就不想往下看,如下图的布局是不是更清爽一些呢? 想要这样的效果?直接复制下面的两小块就行了,文字自行修改.开始复制!微信公众号辅助工具汇总 推广加粉统统有 微信号 [微信号:xmyanke](←长按复制) 想知道日常生活中如何护眼吗?-- 如果要更多的样式,可以查看源代码,不懂代码没关系,修改具体的颜色值就够了,类似这种的color: #3e3

群发图文消息 查询发送状态一直是失败,问题到底出在哪

问题描述 群发图文消息,上传预览都是没问题的,提交的时候也是正常的,但一直就是发送失败(调用微信的查询群发消息发送状态接口)也没提示为什么发送失败,接口页也始终收不到推送的结果,如果把图文消息换成文本消息又一切都正常.真不知道问题到底出在哪了?? 解决方案 解决方案二:只能擦汗以示来过了--解决方案三:提交返回代码是多少?解决方案四:引用2楼lili20090907的回复: 提交返回代码是多少? 返回的就是正确提交时的JSON数据啊,会返回一个此次对应的一个msgid

怎样写一篇10万+阅读量的微信图文消息?

之前ytkah班门弄斧操作了一次如何让你的微信图文转化率达到300%,只要有一定的粉丝.资源,很多项目实施起来不是很大的问题.看看站长之家的分享吧:如何写一篇100000+的微信文章? 写10万+文章的9大秘籍,请大家调整好姿势,默默感受! 第一招:标题亮度 公众号没内容可写?100个微信题材来帮你! 标题是 一篇文章的入口,不光公众号,门户网站和传统报刊的小编们也经常干这种无节操的勾当:标题党.没办法,读者都是猴急的快枪手,喜欢开宗明义.3秒钟知天 下,然后小编们就投其所好.正中下怀了.对于一

微信公众平台已发送多图文消息支持删除单篇文章

去年11月份,微信公众号实现了发出去的微信图文消息删除后不再显示,现在微信公众平台推出新功能,已推送的多图文中突然发现某篇文章有误可以直接选择单篇文章进行删除,不用全部删除,是不是很人性化?以后不用纠结被Boss批了. 具体操作方法:进入公众平台,依次找到 群发功能 - 已发送 - 删除:选择需要删除的文章,点击确认即可 微信多图文信息可以单个图文删,确认删除单篇文章后,用户点击该文章时将显示"该内容已被发布者删除",再也不用担心为一篇文章而牵连到其他文章了.

Senparc.Weixin.MP 直接发送素材图的图文消息?

问题描述 素材库中的media_id是OY9JSvueRnr0uv55r6bNqgdStNjJA8eQ9oORZOudN3AList<Article>articles=newList<Article>();varstrToken=CommonAPIs.CommonApi.GetToken(WeiXinPub.AppId_,WeiXinPub.AppSecret_).access_token;CustomApi.SendNews(strToken,requestMessage.ToU

如何快速查找微信公众平台的历史图文消息素材

我们在设置微信公众平台关键词自动回复时经常会添加相应的图文消息,但是随着运营时间的增长创建的微信图文消息越来越多,或者同事出差一段时间让你代运营而你对他之前的创作内容又不是很清楚,那么查找起来非常慢.有没有什么方法可以快速查找微信公众平台的历史图文消息素材呢?(新政来了,第三方平台可以通过微信公众平台素材管理接口实现同步) 在微信公众平台导出用户这篇文章中我们注意到用户管理页面的url有一个参数&pagesize=10,我们是否可以举一反三来看看微信公众平台素材管理的页面是不是也有类似的参数呢?

如何让你的微信图文转化率达到300%

微信图文转化率是微信公众平台图文群发效果评估的一个重要标准,图文转化率越高,这篇微信图文消息的传播越广,如果是这篇图文是品牌宣传,那么品牌覆盖触及的范围更广.微信图文转化率多少算合格?有的说30-40%,有的说百分之几百,有的说百分之几千.这些要参考很多因素,比如微信公众号类型.运营内容.第三方资源的利用.本文ytkah就根据自己的体会谈谈如何让你的微信图文转化率达到300%! 首先我们要先了解一下微信图文转化率是什么意思. 图文转化率=图文阅读人数/送达人数 送达人数指的是你将该条微信推送给了